Allow admins to add and remove invitations per account
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-02-10 11:21:45 +01:00
parent ca238be6f4
commit f3159d30f1
8 changed files with 77 additions and 17 deletions

View File

@@ -1,7 +1,8 @@
class Admin::UsersController < Admin::BaseController
before_action :set_user, only: [:show]
before_action :set_user, except: [:index]
before_action :set_current_section
# GET /admin/users
def index
ldap = LdapService.new
@ou = Setting.primary_domain
@@ -13,6 +14,7 @@ class Admin::UsersController < Admin::BaseController
}
end
# GET /admin/users/:username
def show
if Setting.lndhub_admin_enabled?
@lndhub_user = @user.lndhub_user
@@ -23,6 +25,30 @@ class Admin::UsersController < Admin::BaseController
@avatar = LdapManager::FetchAvatar.call(cn: @user.cn)
end
# POST /admin/users/:username/invitations
def create_invitations
amount = params[:amount].to_i
notify_user = ActiveRecord::Type::Boolean.new.cast(params[:notify_user])
CreateInvitations.call(user: @user, amount: amount, notify: notify_user)
redirect_to admin_user_path(@user.cn), flash: {
success: "Added #{amount} invitations to #{@user.cn}'s account"
}
end
# DELETE /admin/users/:username/invitations
def delete_invitations
invitations = @user.invitations.unused
amount = invitations.count
invitations.destroy_all
redirect_to admin_user_path(@user.cn), flash: {
success: "Removed #{amount} invitations from #{@user.cn}'s account"
}
end
private
def set_user