parent
							
								
									59e3ad5162
								
							
						
					
					
						commit
						834df855e2
					
				
					 5 changed files with 34 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -30,6 +30,12 @@ module Admin
 | 
			
		|||
      redirect_to admin_invites_path
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def deactivate_all
 | 
			
		||||
      authorize :invite, :deactivate_all?
 | 
			
		||||
      Invite.available.in_batches.update_all(expires_at: Time.now.utc)
 | 
			
		||||
      redirect_to admin_invites_path
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    private
 | 
			
		||||
 | 
			
		||||
    def resource_params
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,10 @@ class InvitePolicy < ApplicationPolicy
 | 
			
		|||
    min_required_role?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def deactivate_all?
 | 
			
		||||
    admin?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def destroy?
 | 
			
		||||
    owner? || (Setting.min_invite_role == 'admin' ? admin? : staff?)
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,22 +9,28 @@
 | 
			
		|||
      %li= filter_link_to t('admin.invites.filter.available'), available: 1, expired: nil
 | 
			
		||||
      %li= filter_link_to t('admin.invites.filter.expired'), available: nil, expired: 1
 | 
			
		||||
 | 
			
		||||
%hr.spacer/
 | 
			
		||||
 | 
			
		||||
- if policy(:invite).create?
 | 
			
		||||
  %p= t('invites.prompt')
 | 
			
		||||
 | 
			
		||||
  = render 'invites/form'
 | 
			
		||||
 | 
			
		||||
  %hr/
 | 
			
		||||
  %hr.spacer/
 | 
			
		||||
 | 
			
		||||
%table.table
 | 
			
		||||
  %thead
 | 
			
		||||
    %tr
 | 
			
		||||
      %th
 | 
			
		||||
      %th= t('invites.table.uses')
 | 
			
		||||
      %th= t('invites.table.expires_at')
 | 
			
		||||
      %th
 | 
			
		||||
      %th
 | 
			
		||||
  %tbody
 | 
			
		||||
    = render @invites
 | 
			
		||||
.table-wrapper
 | 
			
		||||
  %table.table
 | 
			
		||||
    %thead
 | 
			
		||||
      %tr
 | 
			
		||||
        %th
 | 
			
		||||
        %th= t('invites.table.uses')
 | 
			
		||||
        %th= t('invites.table.expires_at')
 | 
			
		||||
        %th
 | 
			
		||||
        %th
 | 
			
		||||
    %tbody
 | 
			
		||||
      = render @invites
 | 
			
		||||
 | 
			
		||||
= paginate @invites
 | 
			
		||||
 | 
			
		||||
- if policy(:invite).deactivate_all?
 | 
			
		||||
  = link_to t('admin.invites.deactivate_all'), deactivate_all_admin_invites_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -281,6 +281,7 @@ en:
 | 
			
		|||
      search: Search
 | 
			
		||||
      title: Known instances
 | 
			
		||||
    invites:
 | 
			
		||||
      deactivate_all: Deactivate all
 | 
			
		||||
      filter:
 | 
			
		||||
        all: All
 | 
			
		||||
        available: Available
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -134,7 +134,12 @@ Rails.application.routes.draw do
 | 
			
		|||
    resources :email_domain_blocks, only: [:index, :new, :create, :destroy]
 | 
			
		||||
    resources :action_logs, only: [:index]
 | 
			
		||||
    resource :settings, only: [:edit, :update]
 | 
			
		||||
    resources :invites, only: [:index, :create, :destroy]
 | 
			
		||||
 | 
			
		||||
    resources :invites, only: [:index, :create, :destroy] do
 | 
			
		||||
      collection do
 | 
			
		||||
        post :deactivate_all
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    resources :relays, only: [:index, :new, :create, :destroy] do
 | 
			
		||||
      member do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue