usman 0.1.5 → 0.1.6dev2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +48 -16
  3. data/app/controllers/usman/admin/base_controller.rb +22 -0
  4. data/app/controllers/usman/admin/dashboard_controller.rb +1 -1
  5. data/app/controllers/usman/admin/features_controller.rb +4 -1
  6. data/app/controllers/usman/admin/permissions_controller.rb +9 -15
  7. data/app/controllers/usman/admin/resource_controller.rb +3 -1
  8. data/app/controllers/usman/admin/roles_controller.rb +4 -2
  9. data/app/controllers/usman/admin/user_roles_controller.rb +142 -0
  10. data/app/controllers/usman/admin/users_controller.rb +5 -2
  11. data/app/controllers/usman/application_controller.rb +0 -4
  12. data/app/controllers/usman/sessions_controller.rb +5 -2
  13. data/app/helpers/usman/authentication_helper.rb +35 -25
  14. data/app/models/feature.rb +50 -46
  15. data/app/models/image/feature_image.rb +1 -1
  16. data/app/models/image/profile_picture.rb +1 -1
  17. data/app/models/permission.rb +3 -8
  18. data/app/models/role.rb +4 -7
  19. data/app/models/user.rb +81 -103
  20. data/app/models/usman/application_record.rb +3 -0
  21. data/app/services/usman/authentication_service.rb +4 -3
  22. data/app/uploaders/profile_picture_uploader.rb +2 -1
  23. data/app/views/layouts/kuppayam/_header.html.erb +1 -1
  24. data/app/views/layouts/kuppayam/_navbar.html.erb +1 -1
  25. data/app/views/layouts/kuppayam/_sidebar.html.erb +8 -7
  26. data/app/views/usman/admin/dashboard/index.html.erb +0 -1
  27. data/app/views/usman/admin/features/_form.html.erb +5 -2
  28. data/app/views/usman/admin/features/_index.html.erb +4 -1
  29. data/app/views/usman/admin/features/index.html.erb +20 -3
  30. data/app/views/usman/admin/permissions/_show.html.erb +2 -10
  31. data/app/views/usman/admin/permissions/index.html.erb +20 -3
  32. data/app/views/usman/admin/roles/_form.html.erb +1 -1
  33. data/app/views/usman/admin/roles/_index.html.erb +3 -3
  34. data/app/views/usman/admin/roles/_row.html.erb +2 -2
  35. data/app/views/usman/admin/roles/_show.html.erb +41 -7
  36. data/app/views/usman/admin/roles/index.html.erb +22 -3
  37. data/app/views/usman/admin/user_roles/_form.html.erb +24 -0
  38. data/app/views/usman/admin/user_roles/_index.html.erb +59 -0
  39. data/app/views/usman/admin/user_roles/_row.html.erb +34 -0
  40. data/app/views/usman/admin/users/_index.html.erb +22 -16
  41. data/app/views/usman/admin/users/_row.html.erb +4 -4
  42. data/app/views/usman/admin/users/_show.html.erb +1 -1
  43. data/app/views/usman/admin/users/index.html.erb +4 -2
  44. data/app/views/usman/sessions/_form.html.erb +19 -7
  45. data/app/views/usman/sessions/sign_in.html.erb +1 -1
  46. data/config/initializers/overide_kuppayam_controllers.rb +74 -0
  47. data/config/locales/kuppayam/authentication.en.yml +4 -1
  48. data/config/routes.rb +3 -1
  49. data/db/import_data/dummy/features.csv +7 -0
  50. data/db/import_data/dummy/permissions.csv +18 -1
  51. data/db/import_data/dummy/roles.csv +5 -0
  52. data/db/import_data/dummy/users.csv +7 -3
  53. data/db/import_data/features.csv +7 -0
  54. data/db/import_data/permissions.csv +1 -30
  55. data/db/import_data/roles.csv +5 -0
  56. data/db/migrate/20170000000100_create_users.rb +1 -1
  57. data/db/migrate/20170000000101_create_features.rb +1 -1
  58. data/db/migrate/20170000000102_create_roles.rb +1 -1
  59. data/db/migrate/20170728095744_create_otp_registrations.rb +17 -0
  60. data/lib/tasks/usman/all.rake +34 -10
  61. data/lib/{tasks/usman → temp}/features.rake +3 -6
  62. data/lib/{tasks/usman → temp}/permissions.rake +3 -5
  63. data/lib/temp/roles.rake +24 -0
  64. data/lib/{tasks/usman → temp}/users.rake +3 -5
  65. data/lib/usman/engine.rb +2 -3
  66. data/lib/usman/version.rb +1 -1
  67. metadata +27 -45
  68. data/app/views/usman/admin/features/_action_buttons.html.erb +0 -0
  69. data/app/views/usman/admin/features/temp/create.js.erb +0 -29
  70. data/app/views/usman/admin/features/temp/destroy.js.erb +0 -16
  71. data/app/views/usman/admin/features/temp/edit.js.erb +0 -7
  72. data/app/views/usman/admin/features/temp/index.js.erb +0 -8
  73. data/app/views/usman/admin/features/temp/new.js.erb +0 -7
  74. data/app/views/usman/admin/features/temp/row.js.erb +0 -10
  75. data/app/views/usman/admin/features/temp/show.js.erb +0 -8
  76. data/app/views/usman/admin/features/temp/update.js.erb +0 -16
  77. data/app/views/usman/admin/permissions/temp/create.js.erb +0 -29
  78. data/app/views/usman/admin/permissions/temp/destroy.js.erb +0 -22
  79. data/app/views/usman/admin/permissions/temp/edit.js.erb +0 -4
  80. data/app/views/usman/admin/permissions/temp/index.js.erb +0 -14
  81. data/app/views/usman/admin/permissions/temp/new.js.erb +0 -4
  82. data/app/views/usman/admin/permissions/temp/row.js.erb +0 -24
  83. data/app/views/usman/admin/permissions/temp/show.js.erb +0 -13
  84. data/app/views/usman/admin/permissions/temp/update.js.erb +0 -29
  85. data/db/import_data/dummy/images/users/guna.neweast.png +0 -0
  86. data/db/import_data/dummy/images/users/junaid.ramzan.jpg +0 -0
  87. data/db/import_data/dummy/images/users/kpvarma.png +0 -0
  88. data/db/import_data/dummy/images/users/stephen.price.png +0 -0
  89. data/db/import_data/dummy/images/users/vinodh.jpg +0 -0
  90. data/db/import_data/images/users/junaid.ramzan.jpg +0 -0
  91. data/db/import_data/images/users/kpvarma.png +0 -0
  92. data/db/import_data/images/users/vinodh.jpg +0 -0
  93. data/lib/usman/extras/import_error_handler.rb +0 -79
@@ -9,10 +9,27 @@
9
9
 
10
10
  <div id="div_feature_action_buttons">
11
11
  <div class="row">
12
- <div class="col-md-4">
13
- <%= link_to raw("<i class='fa fa-plus mr-10'></i><span class='btn-text'> New Feature</span>"), new_admin_feature_path, :class=>"btn btn-primary pull-left mb-5", :remote=>true %>
12
+ <div class="col-md-6">
13
+
14
+ <%= theme_button('Add a Feature', 'plus', new_admin_feature_path(), classes: "pull-left", btn_type: "success") %>
15
+
16
+ <%= theme_button('Refresh', 'refresh', admin_features_path(), classes: "pull-left ml-10", btn_type: "white") %>
17
+
18
+ <!-- Single button -->
19
+ <div class="ml-10 btn-group hidden">
20
+ <button type="button" class="btn btn-white dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
21
+ More Actions <span class="caret"></span>
22
+ </button>
23
+ <ul class="dropdown-menu">
24
+ <li><a href="#">Import Users</a></li>
25
+ <li><a href="#">Import History</a></li>
26
+ <li role="separator" class="divider"></li>
27
+ <li><a href="#">Export Users</a></li>
28
+ </ul>
29
+ </div>
30
+
14
31
  </div>
15
- <div class="col-md-8">
32
+ <div class="col-md-6">
16
33
  <%= search_form_kuppayam(Feature, admin_features_path, text: @filters[:query]) %>
17
34
  </div>
18
35
  </div>
@@ -1,17 +1,9 @@
1
- <% status_hash = {published: "success", unpublished: "default", disabled: "danger"} %>
2
-
3
- <div class="media <%= status_hash[@permission.status.to_sym] %>">
4
-
5
- <div class="pull-left pt-10 pr-10 pb-10" style="width:30%;">
6
- <%= edit_image(@permission, "permission_image.image.large.url", upload_image_link(@permission, :permission_image)) %>
7
- </div>
1
+ <div class="media">
8
2
 
9
3
  <div class="pull-left ml-10" style="width:65%;">
10
4
 
11
- <h1><%= @permission.name %></h1>
5
+ <h1><%= @permission.id %></h1>
12
6
 
13
- <span class="ml-5 mt-5 label label-<%= status_hash[@permission.status.to_sym] %>"><%= @permission.status.titleize %></span>
14
-
15
7
  <%= clear_tag %>
16
8
  </div>
17
9
 
@@ -9,10 +9,27 @@
9
9
 
10
10
  <div id="div_permission_action_buttons">
11
11
  <div class="row">
12
- <div class="col-md-4">
13
- <%= link_to raw("<i class='fa fa-plus mr-10'></i><span class='btn-text'> New Permission</span>"), new_admin_permission_path, :class=>"btn btn-primary pull-left mb-5", :remote=>true %>
12
+ <div class="col-md-6">
13
+
14
+ <%= theme_button('Add a Permission', 'plus', new_admin_permission_path(), classes: "pull-left", btn_type: "success") %>
15
+
16
+ <%= theme_button('Refresh', 'refresh', admin_permissions_path(), classes: "pull-left ml-10", btn_type: "white") %>
17
+
18
+ <!-- Single button -->
19
+ <div class="ml-10 btn-group hidden">
20
+ <button type="button" class="btn btn-white dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
21
+ More Actions <span class="caret"></span>
22
+ </button>
23
+ <ul class="dropdown-menu">
24
+ <li><a href="#">Import Users</a></li>
25
+ <li><a href="#">Import History</a></li>
26
+ <li role="separator" class="divider"></li>
27
+ <li><a href="#">Export Users</a></li>
28
+ </ul>
29
+ </div>
30
+
14
31
  </div>
15
- <div class="col-md-8">
32
+ <div class="col-md-6">
16
33
  <%= search_form_kuppayam(Permission, admin_permissions_path, text: @filters[:query]) %>
17
34
  </div>
18
35
  </div>
@@ -12,7 +12,7 @@
12
12
 
13
13
  <%= submit_tag("Save", :class=>"btn btn-primary pull-right ml-10") %>
14
14
 
15
- <%= link_to raw("<i class='fa fa-close mr-5'></i><span>Cancel</span>"), "#", onclick: "closeGenericModal();", class: "pull-right ml-10 btn btn-white" %>
15
+ <%= link_to raw("<i class='fa fa-close mr-5'></i><span>Cancel</span>"), "#", onclick: "closeLargeModal();", class: "pull-right ml-10 btn btn-white" %>
16
16
 
17
17
  </div>
18
18
  <%= clear_tag(10) %>
@@ -2,7 +2,7 @@
2
2
  <table class="table table-hover members-table middle-align">
3
3
  <thead>
4
4
  <tr>
5
- <th style="text-align: center;width:20px">#</th>
5
+ <th style="text-align: center;width:60px">#</th>
6
6
  <th>Name</th>
7
7
  <th style="text-align: center;">Actions</th>
8
8
  </tr>
@@ -28,9 +28,9 @@
28
28
 
29
29
  <td class="action-links" style="width:10%">
30
30
 
31
- <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "edit" %>
31
+ <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "edit" if @current_user.super_admin? and role.can_be_edited? %>
32
32
 
33
- <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
33
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if @current_user.super_admin? and role.can_be_deleted? %>
34
34
 
35
35
  </td>
36
36
 
@@ -15,9 +15,9 @@
15
15
 
16
16
  <td class="action-links" style="width:10%">
17
17
 
18
- <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "edit" %>
18
+ <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "edit" if @current_user.super_admin? and role.can_be_edited? %>
19
19
 
20
- <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
20
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if @current_user.super_admin? and role.can_be_deleted? %>
21
21
 
22
22
  </td>
23
23
 
@@ -1,3 +1,5 @@
1
+ <% @users = @role.users.page(@current_page).per(@per_page) %>
2
+
1
3
  <div id="div_role_show">
2
4
 
3
5
  <div class="row">
@@ -19,9 +21,9 @@
19
21
  <% edit_link = edit_admin_role_path(id: @role.id) %>
20
22
  <% delete_link = admin_role_path(id: @role.id) %>
21
23
 
22
- <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "btn btn-block btn-success" if @role.can_be_edited? %>
24
+ <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "btn btn-block btn-success" if @current_user.super_admin? and @role.can_be_edited? %>
23
25
 
24
- <%= link_to raw("<i class=\"linecons-trash\"></i> Delete Role"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "btn btn-block btn-danger btn-only-hover" if @role.can_be_deleted? %>
26
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Delete Role"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "btn btn-block btn-danger btn-only-hover" if @current_user.super_admin? and @role.can_be_deleted? %>
25
27
 
26
28
  <div class="visible-sm visible-xs mb-50"></div>
27
29
 
@@ -32,7 +34,15 @@
32
34
  <%= clear_tag(50) %>
33
35
 
34
36
  <ul class="nav nav-pills">
35
- <li class="active">
37
+
38
+ <li class="active">
39
+ <a href="#user_roles" data-toggle="tab" aria-expanded="false">
40
+ <span class="visible-xs"><i class="fa-database"></i></span>
41
+ <span class="hidden-xs">Users</span>
42
+ </a>
43
+ </li>
44
+
45
+ <li class="">
36
46
  <a href="#technical_details" data-toggle="tab" aria-expanded="false">
37
47
  <span class="visible-xs"><i class="fa-database"></i></span>
38
48
  <span class="hidden-xs">Technical Details</span>
@@ -41,7 +51,32 @@
41
51
  </ul>
42
52
 
43
53
  <div class="tab-content">
44
- <div class="tab-pane active" id="technical_details">
54
+
55
+ <div class="tab-pane active" id="user_roles" style="border: 1px solid #000;min-height:200px;padding:20px;margin-bottom:20px;max-height: 400px;overflow-y: auto;">
56
+
57
+ <%= clear_tag(20) %>
58
+
59
+ <div id="div_user_action_buttons">
60
+ <div class="row">
61
+ <div class="col-md-6">
62
+
63
+ <%= theme_button('Add a User', 'plus', new_admin_role_user_path(@role), classes: "pull-left", btn_type: "success") %>
64
+
65
+ <%= theme_button('Refresh', 'refresh', admin_role_users_path(@role), classes: "pull-left ml-10", btn_type: "white") %>
66
+ </div>
67
+ <div class="col-md-6">
68
+ <%= search_form_kuppayam(User, admin_role_users_path(@role), text: "") %>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ <%= clear_tag(10) %>
73
+
74
+ <div id="div_user_index">
75
+ <%= render :partial=>"usman/admin/user_roles/index" %>
76
+ </div>
77
+ </div>
78
+
79
+ <div class="tab-pane" id="technical_details">
45
80
 
46
81
  <%= clear_tag(20) %>
47
82
 
@@ -60,13 +95,12 @@
60
95
 
61
96
  </tbody>
62
97
  </table>
63
-
64
98
  </div>
65
-
66
99
  </div>
100
+
67
101
  </div>
68
102
 
69
- <%= link_to "Close", "#", onclick: "closeGenericModal();", class: "btn btn-primary pull-right" %>
103
+ <%= link_to "Close", "#", onclick: "closeLargeModal();", class: "btn btn-primary pull-right" %>
70
104
 
71
105
  <%= clear_tag %>
72
106
  </div>
@@ -9,10 +9,29 @@
9
9
 
10
10
  <div id="div_role_action_buttons">
11
11
  <div class="row">
12
- <div class="col-md-4">
13
- <%= link_to raw("<i class='fa fa-plus mr-10'></i><span class='btn-text'> New Role</span>"), new_admin_role_path, :class=>"btn btn-primary pull-left mb-5", :remote=>true %>
12
+ <div class="col-md-6">
13
+
14
+ <%= theme_button('Add a Role', 'plus', new_admin_role_path(), classes: "pull-left", btn_type: "success") if @current_user.super_admin? %>
15
+
16
+ <%= theme_button('Refresh', 'refresh', admin_roles_path(), classes: "pull-left ml-10", btn_type: "white") %>
17
+
18
+ <%= theme_button('Manage Users', 'nothing linecons-graduation-cap', admin_users_path(), classes: "pull-left ml-10", btn_type: "white", remote: false) %>
19
+
20
+ <!-- Single button -->
21
+ <div class="ml-10 btn-group hidden">
22
+ <button type="button" class="btn btn-white dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
23
+ More Actions <span class="caret"></span>
24
+ </button>
25
+ <ul class="dropdown-menu">
26
+ <li><a href="#">Import Users</a></li>
27
+ <li><a href="#">Import History</a></li>
28
+ <li role="separator" class="divider"></li>
29
+ <li><a href="#">Export Users</a></li>
30
+ </ul>
31
+ </div>
32
+
14
33
  </div>
15
- <div class="col-md-8">
34
+ <div class="col-md-6">
16
35
  <%= search_form_kuppayam(Role, admin_roles_path, text: @filters[:query]) %>
17
36
  </div>
18
37
  </div>
@@ -0,0 +1,24 @@
1
+ <%= form_for([:admin, @role, @user], :html => {:id=>"form_user", :class=>"mb-0 form-horizontal", :user => "form", :method => (@user.new_record? ? :post : :put), :remote=>true}) do |f| %>
2
+
3
+ <div id="user_form_error">
4
+ <%= @user.errors[:base].to_sentence %>
5
+ </div>
6
+
7
+ <div class="form-inputs mb-30 mt-30">
8
+ <% options = {assoc_collection: User.approved.normal_users.select("id, name").order("name ASC").all, required: false, editable: true, assoc_display_method: :name} %>
9
+ <%= theme_form_assoc_group(@user, :id, label: "Select User", **options) %>
10
+ </div>
11
+
12
+ <div>
13
+
14
+ <%= submit_tag("Save", :class=>"btn btn-primary pull-right ml-10") %>
15
+
16
+ <%= link_to raw("<i class='fa fa-close mr-5'></i><span>Cancel</span>"), "#", onclick: "closeGenericModal();", class: "pull-right ml-10 btn btn-white" %>
17
+
18
+ </div>
19
+ <%= clear_tag(10) %>
20
+
21
+ </div>
22
+
23
+ <% end %>
24
+
@@ -0,0 +1,59 @@
1
+ <div class="table-responsive">
2
+ <table class="table table-hover members-table middle-align">
3
+ <thead>
4
+ <tr>
5
+ <th style="text-align: center;width:60px">#</th>
6
+ <th style="text-align: center;width:100px"><i class="fa fa-photo"></i></th>
7
+ <th>Name</th>
8
+ <th>Roles</th>
9
+ <th style="text-align: center;" colspan="2">Actions</th>
10
+ </tr>
11
+ </thead>
12
+
13
+ <tbody>
14
+ <% @users.each_with_index do |user, i| %>
15
+
16
+ <% delete_link = admin_role_user_path(@role, user) %>
17
+
18
+ <tr id="tr_user_<%= user.id %>">
19
+
20
+ <th scope="row" style="text-align: center;">
21
+ <% if i < 0 %>
22
+ <i class="fa fa-check text-success"></i>
23
+ <% else %>
24
+ <%= i + 1 + (@per_page.to_i * (@current_page.to_i - 1)) %>
25
+ <% end %>
26
+ </th>
27
+
28
+ <td class="user-image">
29
+ <%= link_to(admin_user_path(user), remote: true) do %>
30
+ <%= display_image(user, "profile_picture.image.small.url", width: "120", height: "auto", class: "img-rectangle", alt: user.display_name) %>
31
+ <% end %>
32
+ </td>
33
+
34
+ <td class="user-name"><%= user.display_name %></td>
35
+
36
+ <td class="user-name">
37
+ <% user.roles.collect(&:name).each do |r| %>
38
+ <span class="ml-5 label label-primary"><%= r %></span>
39
+ <% end %>
40
+ </td>
41
+
42
+ <td class="action-links" style="width:10%">
43
+
44
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Remove Role"), delete_link, method: :delete, user: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
45
+
46
+ </td>
47
+
48
+ </tr>
49
+ <% end %>
50
+ </tbody>
51
+ </table>
52
+ </div>
53
+
54
+ <div class="row">
55
+ <div class="col-sm-12">
56
+ <%= paginate_kuppayam(@users) %>
57
+ </div>
58
+ </div>
59
+
@@ -0,0 +1,34 @@
1
+ <% edit_link = edit_admin_role_user_path(@role, user) %>
2
+ <% delete_link = admin_role_user_path(@role, user) %>
3
+
4
+ <tr id="tr_user_<%= user.id %>">
5
+
6
+ <th scope="row" style="text-align: center;">
7
+ <% if i < 0 %>
8
+ <i class="fa fa-check text-success"></i>
9
+ <% else %>
10
+ <%= i + 1 + (@per_page.to_i * (@current_page.to_i - 1)) %>
11
+ <% end %>
12
+ </th>
13
+
14
+ <td class="user-image">
15
+ <%= link_to(admin_user_path(user), remote: true) do %>
16
+ <%= display_image(user, "profile_picture.image.small.url", width: "120", height: "auto", class: "img-rectangle", alt: user.display_name) %>
17
+ <% end %>
18
+ </td>
19
+
20
+ <td class="user-name"><%= user.display_name %></td>
21
+
22
+ <td class="user-name">
23
+ <% user.roles.collect(&:name).each do |r| %>
24
+ <span class="ml-5 label label-primary"><%= r %></span>
25
+ <% end %>
26
+ </td>
27
+
28
+ <td class="action-links" style="width:10%">
29
+
30
+ <%= link_to raw("<i class=\"linecons-trash\"></i> Remove Role"), delete_link, method: :delete, user: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
31
+
32
+ </td>
33
+
34
+ </tr>
@@ -2,14 +2,12 @@
2
2
  <table class="table table-hover members-table middle-align">
3
3
  <thead>
4
4
  <tr>
5
- <th style="text-align: center;width:10px">#</th>
6
- <th style="text-align: center;width:30px">Image</th>
5
+ <th style="text-align: center;width:60px">#</th>
6
+ <th style="text-align: center;width:100px"><i class="fa fa-photo"></i></th>
7
7
  <th>Name</th>
8
8
  <th class="hidden-xs hidden-sm">Username</th>
9
9
  <th class="hidden-xs hidden-sm">Email</th>
10
- <% if @current_user.is_super_admin? %>
11
- <th class="hidden-xs hidden-sm">Role</th>
12
- <% end %>
10
+ <th class="hidden-xs hidden-sm">Roles</th>
13
11
  <th>Status</th>
14
12
  <th style="text-align: center;" colspan="2">Actions</th>
15
13
  </tr>
@@ -46,14 +44,22 @@
46
44
 
47
45
  <td class="hidden-xs hidden-sm"><%= link_to user.email, admin_user_path(user), remote: true, class: "email" %></td>
48
46
 
49
- <% if @current_user.is_super_admin? %>
50
- <td class="hidden-xs hidden-sm">
51
- <% if user.super_admin %>
52
- <span class="mr-10 mt-5 label label-warning">Super Admin</span>
53
- <% else %>
54
- <span class="mr-10 mt-5 label label-default">Normal</span>
55
- <% end %>
56
- </td>
47
+ <% if @current_user.super_admin? %>
48
+ <td class="hidden-xs hidden-sm">
49
+ <% if user.super_admin? %>
50
+ <span class="mr-10 mt-5 label label-warning">Super Admin</span>
51
+ <% else %>
52
+ <% user.roles.collect(&:name).each do |r| %>
53
+ <span class="ml-5 label label-primary"><%= r %></span>
54
+ <% end %>
55
+ <% end %>
56
+ </td>
57
+ <% else %>
58
+ <td class="user-name">
59
+ <% user.roles.collect(&:name).each do |r| %>
60
+ <span class="ml-5 label label-primary"><%= r %></span>
61
+ <% end %>
62
+ </td>
57
63
  <% end %>
58
64
 
59
65
  <td>
@@ -77,13 +83,13 @@
77
83
  <td class="action-links" style="width:15%">
78
84
 
79
85
  <!-- Approve -->
80
- <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Approve"), update_status_admin_user_path(:id =>user.id, :status =>'approved'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_approved? %>
86
+ <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Approve"), update_status_admin_user_path(:id =>user.id, :status =>'approved'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_approved? && (@current_user != user) %>
81
87
 
82
88
  <!-- Mark as Pending -->
83
- <%= link_to raw("<i class=\"fa fa-circle mr-5\"></i> Mark as Pending"), update_status_admin_user_path(:id =>user.id, :status =>'pending'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_marked_as_pending? %>
89
+ <%= link_to raw("<i class=\"fa fa-circle mr-5\"></i> Mark as Pending"), update_status_admin_user_path(:id =>user.id, :status =>'pending'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_marked_as_pending? && (@current_user != user) %>
84
90
 
85
91
  <!-- Suspend -->
86
- <%= link_to raw("<i class=\"fa fa-edit mr-5\"></i> Suspend"), update_status_admin_user_path(:id =>user.id, :status =>'suspended'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_suspended? %>
92
+ <%= link_to raw("<i class=\"fa fa-edit mr-5\"></i> Suspend"), update_status_admin_user_path(:id =>user.id, :status =>'suspended'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_suspended? && (@current_user != user) %>
87
93
 
88
94
  </td>
89
95
 
@@ -27,7 +27,7 @@
27
27
 
28
28
  <td class="hidden-xs hidden-sm"><%= link_to user.email, admin_user_path(user), remote: true, class: "email" %></td>
29
29
 
30
- <% if @current_user.is_super_admin? %>
30
+ <% if @current_user.super_admin? %>
31
31
  <td class="hidden-xs hidden-sm">
32
32
  <% if user.super_admin %>
33
33
  <span class="mr-10 mt-5 label label-warning">Super Admin</span>
@@ -58,13 +58,13 @@
58
58
  <td class="action-links" style="width:15%">
59
59
 
60
60
  <!-- Approve -->
61
- <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Approve"), update_status_admin_user_path(:id =>user.id, :status =>'approved'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_approved? %>
61
+ <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Approve"), update_status_admin_user_path(:id =>user.id, :status =>'approved'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_approved? && (@current_user != user) %>
62
62
 
63
63
  <!-- Mark as Pending -->
64
- <%= link_to raw("<i class=\"fa fa-circle mr-5\"></i> Mark as Pending"), update_status_admin_user_path(:id =>user.id, :status =>'pending'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_marked_as_pending? %>
64
+ <%= link_to raw("<i class=\"fa fa-circle mr-5\"></i> Mark as Pending"), update_status_admin_user_path(:id =>user.id, :status =>'pending'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_marked_as_pending? && (@current_user != user) %>
65
65
 
66
66
  <!-- Suspend -->
67
- <%= link_to raw("<i class=\"fa fa-edit mr-5\"></i> Suspend"), update_status_admin_user_path(:id =>user.id, :status =>'suspended'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_suspended? %>
67
+ <%= link_to raw("<i class=\"fa fa-edit mr-5\"></i> Suspend"), update_status_admin_user_path(:id =>user.id, :status =>'suspended'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1" if user.can_be_suspended? && (@current_user != user) %>
68
68
 
69
69
  </td>
70
70
 
@@ -61,7 +61,7 @@
61
61
  <% end %>
62
62
 
63
63
  <!-- Approve -->
64
- <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Approve"), update_status_admin_user_path(:id =>@user.id, :status =>'approved'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"btn btn-block btn-success btn-only-hover" if @user.can_be_approved? %>
64
+ <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Approve"), update_status_admin_user_path(:id =>@user.id, :status =>'approved'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"btn btn-block btn-success btn-only-hover" if @user.can_be_approved? && (@current_user != @user) %>
65
65
 
66
66
  <!-- Mark as Pending -->
67
67
  <%= link_to raw("<i class=\"fa fa-circle mr-5\"></i> Mark as Pending"), update_status_admin_user_path(:id =>@user.id, :status =>'pending'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"btn btn-block btn-gray btn-only-hover" if @user.can_be_marked_as_pending? && (@current_user != @user) %>
@@ -4,7 +4,7 @@
4
4
  <ul class="nav nav-tabs">
5
5
 
6
6
  <%# Show Admin tab only for admins %>
7
- <% if @current_user.is_super_admin? %>
7
+ <% if @current_user.super_admin? %>
8
8
  <li class="<%= @super_admin == false ? 'active' : '' %>">
9
9
  <%= link_to "Users", admin_users_path(sa: '0') %>
10
10
  </li>
@@ -30,8 +30,10 @@
30
30
 
31
31
  <%= theme_button('Refresh', 'refresh', admin_users_path(), classes: "pull-left ml-10", btn_type: "white") %>
32
32
 
33
+ <%= theme_button('Manage Roles', 'nothing linecons-graduation-cap', admin_roles_path(), classes: "pull-left ml-10", btn_type: "white", remote: false) %>
34
+
33
35
  <!-- Single button -->
34
- <div class="ml-10 btn-group">
36
+ <div class="ml-10 btn-group hidden">
35
37
  <button type="button" class="btn btn-white dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
36
38
  More Actions <span class="caret"></span>
37
39
  </button>
@@ -1,10 +1,22 @@
1
- <%= form_tag create_session_path, :role=>"form", id: "form_sign_in", class: "login-form" do %>
1
+ <%= form_tag usman.create_session_path, :role=>"form", id: "form_sign_in", class: "login-form" do %>
2
2
 
3
- <%= hidden_field_tag :customer_app, params[:customer_app] if params[:customer_app] %>
4
-
5
- <%= hidden_field_tag :redirect_back_url, params[:redirect_back_url] if params[:redirect_back_url] %>
6
-
7
- <%= hidden_field_tag :requested_url, params[:requested_url] if params[:requested_url] %>
3
+ <% if params[:customer_app] %>
4
+ <%= hidden_field_tag :customer_app, params[:customer_app] %>
5
+ <% elsif @params_hsh && @params_hsh[:customer_app] %>
6
+ <%= hidden_field_tag :customer_app, @params_hsh[:customer_app] %>
7
+ <% end %>
8
+
9
+ <% if params[:redirect_back_url] %>
10
+ <%= hidden_field_tag :redirect_back_url, params[:redirect_back_url] %>
11
+ <% elsif @params_hsh && @params_hsh[:redirect_back_url] %>
12
+ <%= hidden_field_tag :redirect_back_url, @params_hsh[:redirect_back_url] %>
13
+ <% end %>
14
+
15
+ <% if params[:requested_url] %>
16
+ <%= hidden_field_tag :requested_url, params[:requested_url] %>
17
+ <% elsif @params_hsh && @params_hsh[:requested_url] %>
18
+ <%= hidden_field_tag :requested_url, @params_hsh[:requested_url] %>
19
+ <% end %>
8
20
 
9
21
  <div class="row pt-10">
10
22
  <div class="col-sm-offset-3 col-sm-4">
@@ -13,7 +25,7 @@
13
25
  </div>
14
26
 
15
27
  <div class="login-header text-center">
16
- <p>Sign in to access the admin area!</p>
28
+ <p>Login</p>
17
29
  </div>
18
30
 
19
31
  <div class="form-group">
@@ -6,7 +6,7 @@
6
6
 
7
7
  <% if defined?(flash) %>
8
8
  <!-- Errors container -->
9
- <div class="errors-container">
9
+ <div class="errors-container" style="text-align: center;">
10
10
  <%= flash_message(false) -%>
11
11
  </div>
12
12
  <% end %>
@@ -0,0 +1,74 @@
1
+ Kuppayam::ImagesController.class_eval do
2
+
3
+ include Usman::AuthenticationHelper
4
+
5
+ layout 'kuppayam/admin'
6
+
7
+ before_action :current_user
8
+ before_action :require_user
9
+ before_action :require_site_admin
10
+
11
+ def set_default_title
12
+ set_title("Manage Images | Admin")
13
+ end
14
+
15
+ def require_site_admin
16
+ return true if @current_user && @current_user.super_admin?
17
+ unless @current_user.has_role?("Site Admin")
18
+ text = "#{I18n.t("authentication.permission_denied.heading")}: #{I18n.t("authentication.permission_denied.message")}"
19
+ set_flash_message(text, :error, false) if defined?(flash) && flash
20
+ redirect_to default_redirect_url_after_sign_in
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ Kuppayam::ImportDataController.class_eval do
27
+
28
+ include Usman::AuthenticationHelper
29
+
30
+ layout 'kuppayam/admin'
31
+
32
+ before_action :current_user
33
+ before_action :require_user
34
+ before_action :require_site_admin
35
+
36
+ def set_default_title
37
+ set_title("Manage Images | Admin")
38
+ end
39
+
40
+ def require_site_admin
41
+ return true if @current_user && @current_user.super_admin?
42
+ unless @current_user.has_role?("Site Admin")
43
+ text = "#{I18n.t("authentication.permission_denied.heading")}: #{I18n.t("authentication.permission_denied.message")}"
44
+ set_flash_message(text, :error, false) if defined?(flash) && flash
45
+ redirect_to default_redirect_url_after_sign_in
46
+ end
47
+ end
48
+
49
+ end
50
+
51
+ Kuppayam::DocumentsController.class_eval do
52
+
53
+ include Usman::AuthenticationHelper
54
+
55
+ layout 'kuppayam/admin'
56
+
57
+ before_action :current_user
58
+ before_action :require_user
59
+ before_action :require_site_admin
60
+
61
+ def set_default_title
62
+ set_title("Manage Images | Admin")
63
+ end
64
+
65
+ def require_site_admin
66
+ return true if @current_user && @current_user.super_admin?
67
+ unless @current_user.has_role?("Site Admin")
68
+ text = "#{I18n.t("authentication.permission_denied.heading")}: #{I18n.t("authentication.permission_denied.message")}"
69
+ set_flash_message(text, :error, false) if defined?(flash) && flash
70
+ redirect_to default_redirect_url_after_sign_in
71
+ end
72
+ end
73
+
74
+ end
@@ -1,5 +1,8 @@
1
1
  en:
2
2
  authentication:
3
+ login_required:
4
+ heading: "Login Required / Session Expired"
5
+ message: "You need to login to perform this action."
3
6
  permission_denied:
4
7
  heading: "Permission Denied"
5
8
  message: "You don't have permission to perform this action"
@@ -21,5 +24,5 @@ en:
21
24
  logged_out:
22
25
  heading: "Signed Out"
23
26
  message: "You have successfully signed out"
24
- masquerade: "لقد سجلت الدخول بنجاح - %{user}"
27
+ masquerade: "You have successfully logged in as - %{user}"
25
28
  sign_in_back: "You have successfully signed in back as %{user}"