usman 0.1.5 → 0.1.6dev2

Sign up to get free protection for your applications and to get access to all the features.
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}"