The Cybre.Space fork of Mastodon -- https://github.com/tootsuite/mastodon
https://cybre.space
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
929 B
52 lines
929 B
# frozen_string_literal: true |
|
|
|
class InvitesController < ApplicationController |
|
include Authorization |
|
|
|
layout 'admin' |
|
|
|
before_action :authenticate_user! |
|
before_action :set_body_classes |
|
|
|
def index |
|
authorize :invite, :create? |
|
|
|
@invites = invites |
|
@invite = Invite.new |
|
end |
|
|
|
def create |
|
authorize :invite, :create? |
|
|
|
@invite = Invite.new(resource_params) |
|
@invite.user = current_user |
|
|
|
if @invite.save |
|
redirect_to invites_path |
|
else |
|
@invites = invites |
|
render :index |
|
end |
|
end |
|
|
|
def destroy |
|
@invite = invites.find(params[:id]) |
|
authorize @invite, :destroy? |
|
@invite.expire! |
|
redirect_to invites_path |
|
end |
|
|
|
private |
|
|
|
def invites |
|
current_user.invites.order(id: :desc) |
|
end |
|
|
|
def resource_params |
|
params.require(:invite).permit(:max_uses, :expires_in, :autofollow, :comment) |
|
end |
|
|
|
def set_body_classes |
|
@body_classes = 'admin' |
|
end |
|
end
|
|
|