* Add ProMembership model * Implement ProMembershipsController#create * Implement basic ProMembershipsController#show * Add ProMembership to ledger * Populate user history after pro subscription is created * Add fields for expiration notifications * Add ProMemberships::ExpirationNotifier to notify users of expiring memberships * Add tasks for recurring jobs to notify users of expiration * Add auto_recharge column to ProMembership * Add ProMemberships::Biller (incomplete) * Fix specs * Add ProMembership to Administrate * Fix spec * Add has_enough_credits? to User and Organization * Add Payments::Customer class * Finish ProMembership::Biller functionality * Fix ProMemberships::Creator check for credits * Disable destroy actions for ProMembershipsController * Correctly authenticate ProMembershipsController actions * Make sure only pro user's history can be indexed * Add ProMembershipsController#update action for auto recharge * Use regular AR to save new credits and add touch to the purchaser * Clarify Pro membership create policy * Display information about an existing pro membership * Add UI to show page * Add system test for Pro membership creation * Implement edit membership * Make sure users with pro memberships can access history and dashboard pro * Fix padding issue * Show a different text for a user that has credits but not enough for Pro * Move Pro Membership functionality inside settings * Update Pro Membership link in email notifications * Bust all relevant caches * Add the Pro checkmark around the website * Use Users::ResaveArticlesJob instead of delay * Add/remove user from pro-members chat channel * Use the appropriate Pro checkmark * Remove unfinished pro elements * Remove checkmark JS
33 lines
651 B
Ruby
33 lines
651 B
Ruby
class OrganizationPolicy < ApplicationPolicy
|
|
def create?
|
|
!user.banned
|
|
end
|
|
|
|
def update?
|
|
user.org_admin?(record)
|
|
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
|
|
|
|
def pro_org_user?
|
|
user.pro? && OrganizationMembership.exists?(user_id: user.id, organization_id: record.id)
|
|
end
|
|
end
|