-
Notifications
You must be signed in to change notification settings - Fork 145
/
manage_users.erb
81 lines (68 loc) · 2.48 KB
/
manage_users.erb
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
<% # A dashboard to add users and manage user permissions. %>
<script type="text/javascript">
window.Barkeep || (window.Barkeep = {})
Barkeep.UserAdmin = {
currentUserId: <%= current_user.id %>,
updatePermission: function(userId, permission) {
$.ajax({
type: "POST",
url: "/admin/users/update_permissions",
data: {
user_id: userId,
permission: permission
}
});
},
confirmOwnDemotion: function() {
return confirm("You are about to demote yourself! If you continue you will be redirected and unable " +
"to view this page. Would you like to continue?");
},
numberOfAdminUsers: function() { return $("input[type=radio][value=admin]:checked").size(); }
}
$(document).ready(function() {
$("input[type=radio]").click(function(event) {
var targetUserId = $(event.target).attr("data-user-id");
var permission = $(event.target).val();
// Prevent demoting the last admin.
if (Barkeep.UserAdmin.numberOfAdminUsers() === 0) {
alert("Unable to demote the last admin user.");
return false;
}
// Confirm user demoting themself.
if (Barkeep.UserAdmin.currentUserId === targetUserId && !Barkeep.UserAdmin.confirmOwnDemotion()) {
return false;
}
Barkeep.UserAdmin.updatePermission(targetUserId, permission)
// Redirect a user if they demote themself.
if (Barkeep.UserAdmin.currentUserId === targetUserId) {
window.location = "/"
}
});
});
</script>
<div id="manageUsers">
<%= admin_page_breadcrumb "Manage users" %>
<table>
<tr>
<th>Username</th>
<th>Email</th>
<th>Permission</th>
</tr>
<% users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
<td>
<div class="userPermissionControl">
<input id="user_<%= user.id %>_admin" data-user-id="<%= user.id %>" type="radio" value="admin"
name="user_<%= user.id %>" <%= user.permission == "admin" ? "checked='checked'" : "" %> />
<label for="user_<%= user.id %>_admin">admin</label>
<input id="user_<%= user.id %>_normal" data-user-id="<%= user.id %>" type="radio" value="normal"
name="user_<%= user.id %>" <%= user.permission == "normal" ? "checked='checked'" : "" %> />
<label for="user_<%= user.id %>_normal">normal</label>
</div>
</td>
</tr>
<% end %>
</table>
</div>