forked from asonix/mastodon
* Add consumable invites * Add UI for generating invite codes * Add tests * Display max uses and expiration in invites table, delete invite * Remove unused column and redundant validator - Default follows not used, probably bad idea - InviteCodeValidator is redundant because RegistrationsController checks invite code validity * Add admin setting to disable invites * Add admin UI for invites, configurable role for invite creation - Admin UI that lists everyone's invites, always available - Admin setting min_invite_role to control who can invite people - Non-admin invite UI only visible if users are allowed to * Do not remove invites from database, expire them instantly
26 lines
342 B
Ruby
26 lines
342 B
Ruby
# frozen_string_literal: true
|
|
|
|
class InvitePolicy < ApplicationPolicy
|
|
def index?
|
|
staff?
|
|
end
|
|
|
|
def create?
|
|
min_required_role?
|
|
end
|
|
|
|
def destroy?
|
|
owner? || staff?
|
|
end
|
|
|
|
private
|
|
|
|
def owner?
|
|
record.user_id == current_user&.id
|
|
end
|
|
|
|
def min_required_role?
|
|
current_user&.role?(Setting.min_invite_role)
|
|
end
|
|
end
|