blob: ba40b3c8a8df5a6f639ce153ee85e35797f59cd9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# frozen_string_literal: true
module Admin
module UserActionsHelper
def admin_actions(user)
return [] if user.internal?
@actions ||= ['edit']
return @actions if user == current_user
@user ||= user
blocked_actions
deactivate_actions
unlock_actions
delete_actions
ban_actions
trust_actions
@actions
end
private
def blocked_actions
if @user.ldap_blocked?
@actions << 'ldap'
elsif @user.blocked? && @user.blocked_pending_approval?
@actions << 'approve'
@actions << 'reject'
elsif @user.blocked?
@actions << 'unblock' unless @user.banned?
else
@actions << 'block'
end
end
def deactivate_actions
if @user.can_be_deactivated?
@actions << 'deactivate'
elsif @user.deactivated?
@actions << 'activate'
end
end
def unlock_actions
@actions << 'unlock' if @user.access_locked?
end
def delete_actions
return unless can?(current_user, :destroy_user, @user) && !@user.blocked_pending_approval?
@actions << 'delete' if @user.can_be_removed?
@actions << 'delete_with_contributions'
end
def ban_actions
return if @user.internal?
if @user.banned?
@actions << 'unban'
return
end
unless @user.blocked?
@actions << 'ban'
end
end
def trust_actions
return if @user.internal? ||
@user.blocked_pending_approval? ||
@user.banned? ||
@user.blocked? ||
@user.deactivated?
@actions << if @user.trusted?
'untrust'
else
'trust'
end
end
end
end
|