Sha256: 7ebc66defa4a264df3a7b16341aeeb10d676c978005ede96803e50a0d2fbfcd9
Contents?: true
Size: 731 Bytes
Versions: 15
Compression:
Stored size: 731 Bytes
Contents
class ProjectPolicy < ApplicationPolicy def index? @user end def project_user? project_manager? || record.users.include?(@user) end def project_manager? @user.superuser? || @user.all_admin_projects.include?(record) end def show? @user && project_user? end def update? @user && project_manager? end def create? @user && project_manager? end def destroy? @user && project_manager? end class Scope < ApplicationPolicy::Scope def resolve if user.superuser? scope.all elsif user.project_admin? scope.find( (user.all_admin_projects+user.projects).map(&:id) ) else scope.find( user.projects ) end end end end
Version data entries
15 entries across 15 versions & 1 rubygems