|
@@ -324,15 +324,8 @@ class App.Ticket extends App.Model
|
|
|
return @userGroupAccess(permission)
|
|
|
|
|
|
userGroupAccess: (permission) ->
|
|
|
- user = App.User.current()
|
|
|
- group_ids = user.allGroupIds(permission)
|
|
|
- return false if !@group_id
|
|
|
-
|
|
|
- for local_group_id in group_ids
|
|
|
- if local_group_id.toString() is @group_id.toString()
|
|
|
- return true
|
|
|
-
|
|
|
- return false
|
|
|
+ user = App.User.current()
|
|
|
+ return @isAccessibleByGroup(user, permission)
|
|
|
|
|
|
userIsCustomer: ->
|
|
|
user = App.User.current()
|
|
@@ -341,10 +334,32 @@ class App.Ticket extends App.Model
|
|
|
|
|
|
userIsOwner: ->
|
|
|
user = App.User.current()
|
|
|
- return true if user.id is @owner_id
|
|
|
- false
|
|
|
+ return @isAccessibleByOwner(user)
|
|
|
|
|
|
currentView: ->
|
|
|
return 'agent' if App.User.current()?.permission('ticket.agent') && @userGroupAccess('read')
|
|
|
return 'customer' if App.User.current()?.permission('ticket.customer')
|
|
|
return
|
|
|
+
|
|
|
+ isAccessibleByOwner: (user) ->
|
|
|
+ return false if !user
|
|
|
+ return true if user.id is @owner_id
|
|
|
+ false
|
|
|
+
|
|
|
+ isAccessibleByGroup: (user, permission) ->
|
|
|
+ return false if !user
|
|
|
+
|
|
|
+ group_ids = user.allGroupIds(permission)
|
|
|
+ return false if !@group_id
|
|
|
+
|
|
|
+ for local_group_id in group_ids
|
|
|
+ if local_group_id.toString() is @group_id.toString()
|
|
|
+ return true
|
|
|
+
|
|
|
+ return false
|
|
|
+
|
|
|
+ isAccessibleBy: (user, permission) ->
|
|
|
+ return false if !user
|
|
|
+ return false if !user.permission('ticket.agent')
|
|
|
+ return true if @isAccessibleByOwner(user)
|
|
|
+ return @isAccessibleByGroup(user, permission)
|