* Rename banned and comment_banned roles * Add data update script to rename roles containing 'ban' * Add named error for Suspended users * Update unidiomatic method names * Rename misc banned to suspended * Apply suggestions from code review Co-authored-by: Michael Kohl <me@citizen428.net> * Add unit tests for suspended methods This commit also adds TODO comments for removing banned and comment_banned from the codebase after data update scripts have successfully run on all of our Forems. Co-authored-by: Michael Kohl <me@citizen428.net>
33 lines
607 B
Ruby
33 lines
607 B
Ruby
class OrganizationPolicy < ApplicationPolicy
|
|
def create?
|
|
!user.suspended?
|
|
end
|
|
|
|
def update?
|
|
user.org_admin?(record)
|
|
end
|
|
|
|
def destroy?
|
|
user.org_admin?(record) && record.destroyable?
|
|
end
|
|
|
|
def leave_org?
|
|
part_of_org?
|
|
end
|
|
|
|
def part_of_org?
|
|
return false if record.blank?
|
|
|
|
OrganizationMembership.exists?(user_id: user.id, organization_id: record.id)
|
|
end
|
|
|
|
def admin_of_org?
|
|
return false if record.blank?
|
|
|
|
OrganizationMembership.exists?(user_id: user.id, organization_id: record.id, type_of_user: "admin")
|
|
end
|
|
|
|
def generate_new_secret?
|
|
update?
|
|
end
|
|
end
|