Chatwoot/app/policies/application_policy.rb

60 lines
1,017 B
Ruby
Raw Normal View History

class ApplicationPolicy
attr_reader :user_context, :user, :record, :account, :account_user
def initialize(user_context, record)
@user_context = user_context = user_context
@user = user_context[:user]
@account = user_context[:account]
@account_user = user_context[:account_user]
@record = record
end
def index?
false
end
def show?
2019-10-20 08:47:26 +00:00
scope.where(id: record.id).exists?
end
def create?
false
end
def new?
create?
end
def update?
false
end
def edit?
update?
end
def destroy?
false
end
def scope
Pundit.policy_scope!(user_context, record.class)
end
class Scope
attr_reader :user_context, :user, :scope, :account, :account_user
def initialize(user_context, scope)
@user_context = user_context = user_context
@user = user_context[:user]
@account = user_context[:account]
@account_user = user_context[:account_user]
@scope = scope
end
def resolve
scope
end
end
end