usman 0.1.5dev4 → 0.1.5

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/usman/admin/dashboard_controller.rb +1 -1
  3. data/app/controllers/usman/admin/features_controller.rb +0 -2
  4. data/app/controllers/usman/admin/permissions_controller.rb +15 -8
  5. data/app/controllers/usman/admin/roles_controller.rb +2 -3
  6. data/app/controllers/usman/admin/users_controller.rb +2 -4
  7. data/app/helpers/usman/authentication_helper.rb +9 -20
  8. data/app/models/feature.rb +37 -37
  9. data/app/models/permission.rb +8 -3
  10. data/app/models/role.rb +6 -3
  11. data/app/models/user.rb +79 -70
  12. data/app/models/usman/application_record.rb +0 -3
  13. data/app/views/layouts/kuppayam/_sidebar.html.erb +7 -8
  14. data/app/views/usman/admin/features/_action_buttons.html.erb +0 -0
  15. data/app/views/usman/admin/features/_form.html.erb +2 -5
  16. data/app/views/usman/admin/features/_index.html.erb +1 -4
  17. data/app/views/usman/admin/features/index.html.erb +3 -20
  18. data/app/views/usman/admin/features/temp/create.js.erb +29 -0
  19. data/app/views/usman/admin/features/temp/destroy.js.erb +16 -0
  20. data/app/views/usman/admin/features/temp/edit.js.erb +7 -0
  21. data/app/views/usman/admin/features/temp/index.js.erb +8 -0
  22. data/app/views/usman/admin/features/temp/new.js.erb +7 -0
  23. data/app/views/usman/admin/features/temp/row.js.erb +10 -0
  24. data/app/views/usman/admin/features/temp/show.js.erb +8 -0
  25. data/app/views/usman/admin/features/temp/update.js.erb +16 -0
  26. data/app/views/usman/admin/permissions/_show.html.erb +10 -2
  27. data/app/views/usman/admin/permissions/index.html.erb +3 -20
  28. data/app/views/usman/admin/permissions/temp/create.js.erb +29 -0
  29. data/app/views/usman/admin/permissions/temp/destroy.js.erb +22 -0
  30. data/app/views/usman/admin/permissions/temp/edit.js.erb +4 -0
  31. data/app/views/usman/admin/permissions/temp/index.js.erb +14 -0
  32. data/app/views/usman/admin/permissions/temp/new.js.erb +4 -0
  33. data/app/views/usman/admin/permissions/temp/row.js.erb +24 -0
  34. data/app/views/usman/admin/permissions/temp/show.js.erb +13 -0
  35. data/app/views/usman/admin/permissions/temp/update.js.erb +29 -0
  36. data/app/views/usman/admin/roles/_form.html.erb +1 -1
  37. data/app/views/usman/admin/roles/_index.html.erb +3 -3
  38. data/app/views/usman/admin/roles/_row.html.erb +2 -2
  39. data/app/views/usman/admin/roles/_show.html.erb +7 -41
  40. data/app/views/usman/admin/roles/index.html.erb +3 -22
  41. data/app/views/usman/admin/users/_index.html.erb +16 -22
  42. data/app/views/usman/admin/users/_row.html.erb +4 -4
  43. data/app/views/usman/admin/users/_show.html.erb +1 -1
  44. data/app/views/usman/admin/users/index.html.erb +2 -4
  45. data/app/views/usman/sessions/_form.html.erb +7 -19
  46. data/config/locales/kuppayam/authentication.en.yml +1 -1
  47. data/config/routes.rb +1 -3
  48. data/db/import_data/dummy/images/users/guna.neweast.png +0 -0
  49. data/db/import_data/dummy/images/users/junaid.ramzan.jpg +0 -0
  50. data/db/import_data/dummy/images/users/kpvarma.png +0 -0
  51. data/db/import_data/dummy/images/users/stephen.price.png +0 -0
  52. data/db/import_data/dummy/images/users/vinodh.jpg +0 -0
  53. data/db/import_data/dummy/users.csv +3 -3
  54. data/db/import_data/features.csv +10 -0
  55. data/db/import_data/images/users/junaid.ramzan.jpg +0 -0
  56. data/db/import_data/images/users/kpvarma.png +0 -0
  57. data/db/import_data/images/users/vinodh.jpg +0 -0
  58. data/db/import_data/permissions.csv +30 -0
  59. data/db/migrate/20170000000100_create_users.rb +1 -1
  60. data/db/migrate/20170000000101_create_features.rb +1 -1
  61. data/db/migrate/20170000000102_create_roles.rb +1 -1
  62. data/lib/tasks/usman/all.rake +10 -34
  63. data/lib/{temp → tasks/usman}/features.rake +6 -3
  64. data/lib/{temp → tasks/usman}/permissions.rake +5 -3
  65. data/lib/{temp → tasks/usman}/users.rake +5 -3
  66. data/lib/usman/engine.rb +2 -0
  67. data/lib/usman/extras/import_error_handler.rb +79 -0
  68. data/lib/usman/version.rb +1 -1
  69. metadata +37 -17
  70. data/app/controllers/usman/admin/user_roles_controller.rb +0 -142
  71. data/app/views/usman/admin/user_roles/_form.html.erb +0 -24
  72. data/app/views/usman/admin/user_roles/_index.html.erb +0 -59
  73. data/app/views/usman/admin/user_roles/_row.html.erb +0 -30
  74. data/app/views/usman/admin/user_roles/_show.html.erb +0 -74
  75. data/db/import_data/dummy/roles.csv +0 -9
  76. data/db/import_data/roles.csv +0 -5
  77. data/lib/temp/roles.rake +0 -24
@@ -1,142 +0,0 @@
1
- module Usman
2
- module Admin
3
- class UserRolesController < ResourceController
4
-
5
- before_action :get_role
6
-
7
- def index
8
- get_collections
9
- respond_to do |format|
10
- format.html {}
11
- format.js {
12
- js_view_path = @resource_options && @resource_options[:js_view_path] ? "#{@resource_options[:js_view_path]}/index" : :index
13
- render js_view_path
14
- }
15
- end
16
- end
17
-
18
- def show
19
- @user = @r_object = @resource_options[:class].find_by_id(params[:id])
20
- set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: default_item_name.titleize)) unless @r_object
21
- render_accordingly
22
- end
23
-
24
- def new
25
- @user = User.new
26
- render_accordingly
27
- end
28
-
29
- def create
30
- @user = @r_object = User.find_by_id(permitted_params[:id])
31
- if @user.add_role(@role)
32
- set_notification(true, I18n.t('status.success'), "Role '#{@role.name}' has been assigned to the user '#{@user.name}'")
33
- else
34
- set_notification(false, I18n.t('status.success'), "Failed to assign the Role '#{@role.name}'")
35
- end
36
- action_name = params[:action].to_s == "create" ? "new" : "edit"
37
- render_or_redirect(false, resource_url(@r_object), action_name)
38
- end
39
-
40
- def destroy
41
- @user = @r_object = User.find_by_id(params[:id])
42
- if @user
43
- if @user.remove_role(@role)
44
- get_collections
45
- set_flash_message(I18n.t('success.deleted'), :success)
46
- set_notification(true, I18n.t('status.success'), "Role '#{@role.name}' has been removed for the user '#{@user.name}'")
47
- @destroyed = true
48
- else
49
- message = I18n.t('errors.failed_to_delete', item: default_item_name.titleize)
50
- set_flash_message(message, :failure)
51
- set_notification(false, I18n.t('status.success'), "Failed to remove the Role '#{@role.name}'")
52
- @destroyed = false
53
- end
54
- else
55
- set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: default_item_name.titleize))
56
- end
57
-
58
- respond_to do |format|
59
- format.html {}
60
- format.js {
61
- js_view_path = @resource_options && @resource_options[:js_view_path] ? "#{@resource_options[:js_view_path]}/destroy" : :destroy
62
- render js_view_path
63
- }
64
- end
65
-
66
- end
67
-
68
- private
69
-
70
- def get_role
71
- @role = Role.find_by_id(params[:role_id])
72
- end
73
-
74
- def get_collections
75
- @relation = @role.users.where("")
76
-
77
- parse_filters
78
- apply_filters
79
-
80
- @users = @r_objects = @relation.page(@current_page).per(@per_page)
81
-
82
- return true
83
- end
84
-
85
- def apply_filters
86
- @relation = @relation.search(@query) if @query
87
-
88
- @order_by = "name ASC" unless @order_by
89
- @relation = @relation.order(@order_by)
90
- end
91
-
92
- def configure_filter_settings
93
- @filter_settings = {
94
- string_filters: [
95
- { filter_name: :query }
96
- ],
97
- boolean_filters: [],
98
- reference_filters: [],
99
- variable_filters: [],
100
- }
101
- end
102
-
103
- def configure_filter_ui_settings
104
- @filter_ui_settings = {}
105
- end
106
-
107
- def resource_url(obj)
108
- url_for([:admin, @role, obj])
109
- end
110
-
111
- def resource_controller_configuration
112
- {
113
- collection_name: :users,
114
- item_name: :user,
115
- class: User,
116
- show_modal_after_update: false,
117
- show_modal_after_update: false,
118
- page_title: "Manage User Roles",
119
- js_view_path: "/kuppayam/workflows/parrot",
120
- view_path: "/usman/admin/user_roles"
121
- }
122
- end
123
-
124
- def breadcrumbs_configuration
125
- {
126
- heading: "Manage User Roles",
127
- description: "Listing all User Roles",
128
- links: [{name: "Home", link: admin_dashboard_path, icon: 'fa-home'}]
129
- }
130
- end
131
-
132
- def permitted_params
133
- params.require(:user).permit(:id)
134
- end
135
-
136
- def set_navs
137
- set_nav("admin/roles/user_roles")
138
- end
139
-
140
- end
141
- end
142
- end
@@ -1,24 +0,0 @@
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
-
@@ -1,59 +0,0 @@
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
-
@@ -1,30 +0,0 @@
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"><%= user.roles.collect(&:name) %></td>
23
-
24
- <td class="action-links" style="width:10%">
25
-
26
- <%= 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" %>
27
-
28
- </td>
29
-
30
- </tr>
@@ -1,74 +0,0 @@
1
- <div id="div_user_show">
2
-
3
- <div class="row">
4
-
5
- <div class="col-md-9 col-sm-12 col-xs-12" style="border-right:1px solid #f1f1f1;">
6
-
7
- <div class="visible-sm visible-xs mt-50"></div>
8
-
9
- <%= theme_panel_heading(@user.display_name) %>
10
- <%= theme_panel_sub_heading(@user.code, "#") %>
11
- <%= theme_panel_description(@user.role.name) if @user.role %>
12
-
13
- <%= clear_tag(10) %>
14
-
15
- <div class="visible-sm visible-xs mb-50"></div>
16
-
17
- </div>
18
-
19
- <div class="col-md-3 col-sm-12 col-xs-12">
20
-
21
- <% edit_link = edit_admin_role_user_path(@user.role, @user) %>
22
- <% delete_link = admin_role_user_path(@user.role, @user) %>
23
-
24
- <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit"), edit_link, :remote=>true, class: "btn btn-block btn-success" if @user.can_be_edited? %>
25
-
26
- <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, user: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "btn btn-block btn-danger btn-only-hover" if @user.can_be_deleted? %>
27
-
28
- <div class="visible-sm visible-xs mb-50"></div>
29
-
30
- </div>
31
-
32
- </div>
33
-
34
- <%= clear_tag(50) %>
35
-
36
- <ul class="nav nav-pills">
37
- <li class="active">
38
- <a href="#technical_details" data-toggle="tab" aria-expanded="false">
39
- <span class="visible-xs"><i class="fa-database"></i></span>
40
- <span class="hidden-xs">Technical Details</span>
41
- </a>
42
- </li>
43
- </ul>
44
-
45
- <div class="tab-content">
46
- <div class="tab-pane active" id="technical_details">
47
-
48
- <%= clear_tag(20) %>
49
-
50
- <div class="table-responsive">
51
- <table class="table table-striped table-condensed table-bordered mb-30">
52
- <tbody>
53
-
54
- <tr>
55
- <th>ID</th><td colspan="3"><%= @user.id %></td>
56
- </tr>
57
-
58
- <tr>
59
- <th>Created At</th><td><%= @user.created_at.strftime("%m/%d/%Y - %H:%M:%S") if @user.created_at %></td>
60
- <th>Updated At</th><td><%= @user.updated_at.strftime("%m/%d/%Y - %H:%M:%S") if @user.updated_at %></td>
61
- </tr>
62
-
63
- </tbody>
64
- </table>
65
-
66
- </div>
67
-
68
- </div>
69
- </div>
70
-
71
- <%= link_to "Close", "#", onclick: "closeGenericModal();", class: "btn btn-primary pull-right" %>
72
-
73
- <%= clear_tag %>
74
- </div>
@@ -1,9 +0,0 @@
1
- name
2
- Site Admin
3
- Merchandise Manager
4
- HR Manager
5
- Finance Admin
6
- Director - Sales
7
- Warehouse Manager
8
- POS Sales Manager
9
- POS Sales Staff
@@ -1,5 +0,0 @@
1
- name
2
- Site Admin
3
- Warehouse Manager
4
- POS Sales Manager
5
- POS Sales Staff
data/lib/temp/roles.rake DELETED
@@ -1,24 +0,0 @@
1
- require 'csv'
2
- require 'open-uri'
3
- require 'time'
4
-
5
- namespace 'usman' do
6
- namespace 'import' do
7
- desc "Import Roles"
8
- task 'roles' => :environment do
9
- verbose = true
10
- verbose = false if ["false", "f","0","no","n"].include?(ENV["verbose"].to_s.downcase.strip)
11
- path = ENV['path']
12
- Role.import_data(Usman::Engine, path, false, verbose)
13
- end
14
- namespace 'dummy' do
15
- desc "Load Dummy Roles"
16
- task 'roles' => :environment do
17
- verbose = true
18
- verbose = false if ["false", "f","0","no","n"].include?(ENV["verbose"].to_s.downcase.strip)
19
- Role.import_data(Usman::Engine, nil, true, verbose)
20
- end
21
- end
22
- end
23
-
24
- end