usman 0.3.38 → 0.4.0.pre.materialize
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/usman/application_controller.rb +9 -1
- data/app/controllers/usman/registrations_controller.rb +2 -2
- data/app/controllers/usman/sessions_controller.rb +3 -3
- data/app/controllers/usman/user_roles_controller.rb +1 -1
- data/app/controllers/usman/users_controller.rb +1 -1
- data/app/helpers/usman/authentication_helper.rb +16 -3
- data/app/models/user.rb +76 -2
- data/app/views/layouts/kuppayam/_sidebar.html.erb +6 -6
- data/app/views/usman/dashboard/_index.html.erb +1 -1
- data/app/views/usman/dashboard/_super_admin_index.html.erb +1 -1
- data/app/views/usman/permissions/_index.html.erb +2 -2
- data/app/views/usman/permissions/_row.html.erb +2 -2
- data/app/views/usman/registration_devices/_index.html.erb +1 -1
- data/app/views/usman/registration_devices/_row.html.erb +1 -1
- data/app/views/usman/registrations/_index.html.erb +2 -2
- data/app/views/usman/registrations/_row.html.erb +2 -2
- data/app/views/usman/registrations/_show.html.erb +3 -3
- data/app/views/usman/roles/_index.html.erb +2 -2
- data/app/views/usman/roles/_row.html.erb +2 -2
- data/app/views/usman/roles/_show.html.erb +2 -2
- data/app/views/usman/user_roles/_index.html.erb +1 -1
- data/app/views/usman/user_roles/_row.html.erb +1 -1
- data/app/views/usman/users/_form.html.erb +1 -1
- data/app/views/usman/users/_index.html.erb +2 -2
- data/app/views/usman/users/_row.html.erb +2 -2
- data/app/views/usman/users/_show.html.erb +8 -5
- data/app/views/usman/users/index.html.erb +1 -1
- data/db/data/dummy/users.csv +1 -1
- data/db/data/users.csv +1 -1
- data/db/migrate/20170000000100_create_users.rb +2 -1
- data/lib/tasks/usman/data.rake +36 -2
- data/lib/usman/version.rb +1 -1
- data/spec/dummy/spec/factories/user.rb +3 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 249944b38740618e19948df32b3b5efb35c4d3c5bc40df91cd17f06804fc6b90
|
4
|
+
data.tar.gz: 9f14a4c2d4903e35072317db1bf5a687f217ac39a645b22a01dcfd700fb7cce3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed66807d187066a743ec189bc900ebb3861275e1e7bdcb0849ebd997f4e6f61aae77b4200cbcedd061daa0ef8ca51b8aab243789108f341423c2fb1402ba10ef
|
7
|
+
data.tar.gz: d2a1487af1403b6212739e49a9baf9b771582fdd4e7f3214de4784808f89499ad18ad26ff4e57b3f24170571284eee58d785e99732219c30a9dbcbaa2abd37b0
|
@@ -3,7 +3,7 @@ module Usman
|
|
3
3
|
|
4
4
|
include Usman::AuthenticationHelper
|
5
5
|
|
6
|
-
layout 'kuppayam/admin'
|
6
|
+
layout 'kuppayam/xenon/admin'
|
7
7
|
|
8
8
|
before_action :current_user
|
9
9
|
before_action :require_user
|
@@ -12,6 +12,14 @@ module Usman
|
|
12
12
|
|
13
13
|
private
|
14
14
|
|
15
|
+
def stylesheet_filename
|
16
|
+
@stylesheet_filename = "kuppayam-xenon"
|
17
|
+
end
|
18
|
+
|
19
|
+
def javascript_filename
|
20
|
+
@javascript_filename = "kuppayam-xenon"
|
21
|
+
end
|
22
|
+
|
15
23
|
def set_default_title
|
16
24
|
set_title("Usman Admin | User Management Module")
|
17
25
|
end
|
@@ -63,10 +63,10 @@ module Usman
|
|
63
63
|
def breadcrumbs_configuration
|
64
64
|
{
|
65
65
|
heading: "Manage Registrations",
|
66
|
-
icon: "
|
66
|
+
icon: "fa-mobile",
|
67
67
|
description: "Listing all Registrations",
|
68
68
|
links: [{name: "Home", link: breadcrumb_home_path, icon: 'fa-home'},
|
69
|
-
{name: "Manage Registrations", link: registrations_path, icon: '
|
69
|
+
{name: "Manage Registrations", link: registrations_path, icon: 'fa-mobile', active: true}]
|
70
70
|
}
|
71
71
|
end
|
72
72
|
|
@@ -3,7 +3,7 @@ module Usman
|
|
3
3
|
|
4
4
|
include Usman::AuthenticationHelper
|
5
5
|
|
6
|
-
layout 'kuppayam/blank'
|
6
|
+
layout 'kuppayam/xenon/blank'
|
7
7
|
|
8
8
|
rescue_from ActionController::InvalidAuthenticityToken, :with => :rescue_from_invalid_authenticity_token
|
9
9
|
|
@@ -90,11 +90,11 @@ module Usman
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def stylesheet_filename
|
93
|
-
@stylesheet_filename = "kuppayam"
|
93
|
+
@stylesheet_filename = "kuppayam-xenon"
|
94
94
|
end
|
95
95
|
|
96
96
|
def javascript_filename
|
97
|
-
@javascript_filename = "kuppayam"
|
97
|
+
@javascript_filename = "kuppayam-xenon"
|
98
98
|
end
|
99
99
|
|
100
100
|
end
|
@@ -136,7 +136,7 @@ module Usman
|
|
136
136
|
end
|
137
137
|
|
138
138
|
def permitted_params
|
139
|
-
params.require(:user).permit(:name, :username, :email, :
|
139
|
+
params.require(:user).permit(:name, :username, :email, :designation_name, :phone, :password, :password_confirmation)
|
140
140
|
end
|
141
141
|
|
142
142
|
def set_navs
|
@@ -15,7 +15,7 @@ module Usman
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def permission_denied
|
18
|
-
render :file => "layouts/kuppayam/401", layout: 'layouts/kuppayam/blank_with_nav', :status => :unauthorized
|
18
|
+
render :file => "layouts/kuppayam/xenon/401", layout: 'layouts/kuppayam/xenon/blank_with_nav', :status => :unauthorized
|
19
19
|
end
|
20
20
|
|
21
21
|
# Returns the default URL to which the system should redirect the user after successful authentication
|
@@ -116,6 +116,19 @@ module Usman
|
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
|
+
def require_role
|
120
|
+
return true if @current_user && @current_user.super_admin?
|
121
|
+
unless @current_user && @current_user.roles.any?
|
122
|
+
respond_to do |format|
|
123
|
+
format.html { permission_denied }
|
124
|
+
format.js {
|
125
|
+
set_params_hsh
|
126
|
+
render(:partial => 'usman/sessions/sign_in.js.erb', :handlers => [:erb], :formats => [:js])
|
127
|
+
}
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
119
132
|
def require_site_admin
|
120
133
|
return true if @current_user && @current_user.super_admin?
|
121
134
|
unless @current_user && @current_user.has_role?("Site Admin")
|
@@ -186,8 +199,8 @@ module Usman
|
|
186
199
|
end
|
187
200
|
|
188
201
|
def current_permission
|
189
|
-
|
190
|
-
@current_feature = Feature.published.find_by_name(
|
202
|
+
feature_name = @resource_options[:feature_name] || @resource_options[:class]
|
203
|
+
@current_feature = Feature.published.find_by_name(feature_name)
|
191
204
|
feature_id = @current_feature ? @current_feature.id : -1
|
192
205
|
@current_permission = @current_user.permissions.where("feature_id = ?", feature_id).first
|
193
206
|
end
|
data/app/models/user.rb
CHANGED
@@ -95,7 +95,9 @@ class User < Usman::ApplicationRecord
|
|
95
95
|
scope :search, lambda {|query| where("LOWER(users.name) LIKE LOWER('%#{query}%') OR\
|
96
96
|
LOWER(users.username) LIKE LOWER('%#{query}%') OR\
|
97
97
|
LOWER(users.email) LIKE LOWER('%#{query}%') OR\
|
98
|
-
LOWER(users.
|
98
|
+
LOWER(users.phone) LIKE LOWER('%#{query}%') OR\
|
99
|
+
LOWER(users.designation_name) LIKE LOWER('%#{query}%') OR\
|
100
|
+
LOWER(users.organisation_name) LIKE LOWER('%#{query}%')")
|
99
101
|
}
|
100
102
|
|
101
103
|
scope :status, lambda { |status| where("LOWER(status)='#{status}'") }
|
@@ -121,7 +123,8 @@ class User < Usman::ApplicationRecord
|
|
121
123
|
user = User.find_by_username(hsh[:username]) || User.new
|
122
124
|
user.name = hsh[:name]
|
123
125
|
user.username = hsh[:username]
|
124
|
-
user.
|
126
|
+
user.designation_name = hsh[:designation_name]
|
127
|
+
user.organisation_name = hsh[:organisation_name]
|
125
128
|
user.email = hsh[:email]
|
126
129
|
user.phone = hsh[:phone]
|
127
130
|
|
@@ -150,6 +153,77 @@ class User < Usman::ApplicationRecord
|
|
150
153
|
return error_object
|
151
154
|
end
|
152
155
|
|
156
|
+
def self.save_role_data(hsh)
|
157
|
+
|
158
|
+
# Initializing error hash for displaying all errors altogether
|
159
|
+
error_object = Kuppayam::Importer::ErrorHash.new
|
160
|
+
|
161
|
+
return if hsh[:user].blank? || hsh[:role].blank?
|
162
|
+
|
163
|
+
user = User.find_by_username(hsh[:user])
|
164
|
+
role = Role.find_by_name(hsh[:role])
|
165
|
+
|
166
|
+
return if user.blank? || role.blank?
|
167
|
+
|
168
|
+
begin
|
169
|
+
user.add_role(role)
|
170
|
+
rescue Exception => e
|
171
|
+
summary = "uncaught #{e} exception while handling connection: #{e.message}"
|
172
|
+
details = "Stack trace: #{e.backtrace.map {|l| " #{l}\n"}.join}"
|
173
|
+
error_object.errors << { summary: summary, details: details }
|
174
|
+
end
|
175
|
+
|
176
|
+
return error_object
|
177
|
+
end
|
178
|
+
|
179
|
+
def self.import_roles_data_file(csv_path, single_transaction=true, verbose=true)
|
180
|
+
print_memory_usage do
|
181
|
+
print_time_spent do
|
182
|
+
if File.exists?(csv_path)
|
183
|
+
if File.extname(csv_path) == ".csv"
|
184
|
+
puts "CSV file found at '#{csv_path.to_s}'.".green if verbose
|
185
|
+
|
186
|
+
errors = []
|
187
|
+
sum = 0
|
188
|
+
|
189
|
+
# , encoding: 'windows-1251:utf-8', :row_sep => :auto
|
190
|
+
if single_transaction
|
191
|
+
ActiveRecord::Base.transaction do
|
192
|
+
CSV.foreach(csv_path, headers: true, header_converters: :symbol, skip_blanks: true) do |row|
|
193
|
+
error_object = save_role_data(row)
|
194
|
+
errors << error_object if error_object
|
195
|
+
error_object.print_dot if error_object && verbose
|
196
|
+
sum += 1
|
197
|
+
end
|
198
|
+
end
|
199
|
+
else
|
200
|
+
CSV.foreach(csv_path, headers: true, header_converters: :symbol, skip_blanks: true) do |row|
|
201
|
+
error_object = save_role_data(row)
|
202
|
+
errors << error_object if error_object
|
203
|
+
error_object.print_dot if error_object && verbose
|
204
|
+
sum += 1
|
205
|
+
end
|
206
|
+
end
|
207
|
+
puts "\tScanned #{sum} rows".yellow
|
208
|
+
|
209
|
+
if verbose
|
210
|
+
puts ""
|
211
|
+
errors.each do |error_object|
|
212
|
+
error_object.print_all if error_object
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
else
|
217
|
+
puts "Unsupported File encountered'#{path.to_s}'.".red if verbose
|
218
|
+
return
|
219
|
+
end
|
220
|
+
else
|
221
|
+
puts "Import File not found at '#{path.to_s}'.".red if verbose
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
153
227
|
# ------------------
|
154
228
|
# Instance Methods
|
155
229
|
# ------------------
|
@@ -14,7 +14,7 @@
|
|
14
14
|
},
|
15
15
|
roles: {
|
16
16
|
text: "Manage Roles",
|
17
|
-
icon_class: "
|
17
|
+
icon_class: "fa-graduation-cap",
|
18
18
|
url: usman.roles_url,
|
19
19
|
has_permission: @current_user.has_read_permission?(Role)
|
20
20
|
},
|
@@ -30,7 +30,7 @@
|
|
30
30
|
configuration_items = {
|
31
31
|
features: {
|
32
32
|
text: "Manage Features",
|
33
|
-
icon_class: "
|
33
|
+
icon_class: "fa-diamond",
|
34
34
|
url: usman.features_url,
|
35
35
|
has_permission: @current_user.has_read_permission?(Feature)
|
36
36
|
}
|
@@ -93,11 +93,11 @@
|
|
93
93
|
<!-- Admin Dashboard -->
|
94
94
|
<% if @current_user.super_admin? || @current_user.has_role?("Site Admin") %>
|
95
95
|
<li class="<%= nav_active?('admin/dashboard') ? 'active' : '' %>">
|
96
|
-
<%= link_to raw("<i class=\"
|
96
|
+
<%= link_to raw("<i class=\"fa-desktop\"></i> <span class='title'>Dashboard</span>"), usman.dashboard_path %>
|
97
97
|
</li>
|
98
98
|
<% else %>
|
99
99
|
<li class="<%= nav_active?('profile/dashboard') ? 'active' : '' %>">
|
100
|
-
<%= link_to raw("<i class=\"
|
100
|
+
<%= link_to raw("<i class=\"fa-desktop\"></i> <span class='title'>Dashboard</span>"), usman.my_account_url %>
|
101
101
|
</li>
|
102
102
|
<% end %>
|
103
103
|
|
@@ -147,10 +147,10 @@
|
|
147
147
|
</li>
|
148
148
|
|
149
149
|
<li class="<%= nav_active?('profile/profile') ? 'active' : '' %>">
|
150
|
-
<a href="#"><i class="
|
150
|
+
<a href="#"><i class="fa-user"></i><span class="title">My Account</span></a>
|
151
151
|
<ul>
|
152
152
|
<li class="<%= nav_class("profile/settings") %>">
|
153
|
-
<%= link_to raw("<i class=\"
|
153
|
+
<%= link_to raw("<i class=\"fa-cog\"></i> <span class='title'>User Settings</span>"), "#" %>
|
154
154
|
</li>
|
155
155
|
</ul>
|
156
156
|
</li>
|
@@ -36,9 +36,9 @@
|
|
36
36
|
<% if display_manage_links? %>
|
37
37
|
<td class="action-links1" style="width:10%;text-align: center;">
|
38
38
|
|
39
|
-
<%= link_to raw("<i class=\"
|
39
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i>"), edit_link, :remote=>true, class: "edit" if display_edit_links? %>
|
40
40
|
|
41
|
-
<%= link_to raw("<i class=\"
|
41
|
+
<%= link_to raw("<i class=\"fa-trash\"></i>"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if display_delete_links? %>
|
42
42
|
|
43
43
|
</td>
|
44
44
|
<% end %>
|
@@ -18,9 +18,9 @@
|
|
18
18
|
<% if display_manage_links? %>
|
19
19
|
<td class="action-links1" style="width:10%;text-align: center;">
|
20
20
|
|
21
|
-
<%= link_to raw("<i class=\"
|
21
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i>"), edit_link, :remote=>true, class: "edit" if display_edit_links? %>
|
22
22
|
|
23
|
-
<%= link_to raw("<i class=\"
|
23
|
+
<%= link_to raw("<i class=\"fa-trash\"></i>"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if display_delete_links? %>
|
24
24
|
|
25
25
|
</td>
|
26
26
|
<% end %>
|
@@ -44,7 +44,7 @@
|
|
44
44
|
<% delete_link = registration_device_path(@registration, device) %>
|
45
45
|
<td class="action-links" style="width:10%">
|
46
46
|
|
47
|
-
<%= link_to raw("<i class=\"
|
47
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Remove Role"), delete_link, method: :delete, device: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
|
48
48
|
|
49
49
|
</td>
|
50
50
|
<% end %>
|
@@ -26,7 +26,7 @@
|
|
26
26
|
<% delete_link = registration_device_path(@registration, device) %>
|
27
27
|
<td class="action-links" style="width:10%"> -->
|
28
28
|
|
29
|
-
<%= link_to raw("<i class=\"
|
29
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Remove Role"), delete_link, method: :delete, device: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
|
30
30
|
|
31
31
|
</td>
|
32
32
|
<% end %>
|
@@ -63,9 +63,9 @@
|
|
63
63
|
<% delete_link = registration_path(id: registration.id) %>
|
64
64
|
|
65
65
|
<td class="action-links" style="width:10%">
|
66
|
-
<%#= link_to raw("<i class=\"
|
66
|
+
<%#= link_to raw("<i class=\"fa-pencil\"></i> Edit Registration"), edit_link, :remote=>true, class: "edit" if registration.can_be_edited? and display_edit_links? %>
|
67
67
|
|
68
|
-
<%= link_to raw("<i class=\"
|
68
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Delete"), delete_link, method: :delete, registration: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if registration.can_be_deleted? and display_delete_links? %>
|
69
69
|
</td>
|
70
70
|
<% end %>
|
71
71
|
|
@@ -45,9 +45,9 @@
|
|
45
45
|
<% delete_link = registration_path(id: registration.id) %>
|
46
46
|
|
47
47
|
<td class="action-links" style="width:10%">
|
48
|
-
<%#= link_to raw("<i class=\"
|
48
|
+
<%#= link_to raw("<i class=\"fa-pencil\"></i> Edit Registration"), edit_link, :remote=>true, class: "edit" if registration.can_be_edited? and display_edit_links? %>
|
49
49
|
|
50
|
-
<%= link_to raw("<i class=\"
|
50
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Delete"), delete_link, method: :delete, registration: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if registration.can_be_deleted? and display_delete_links? %>
|
51
51
|
</td>
|
52
52
|
<% end %>
|
53
53
|
|
@@ -55,9 +55,9 @@
|
|
55
55
|
<%# edit_link = edit_registration_path(id: @registration.id) %>
|
56
56
|
<%# delete_link = registration_path(id: @registration.id) %>
|
57
57
|
|
58
|
-
<%#= link_to raw("<i class=\"
|
58
|
+
<%#= link_to raw("<i class=\"fa-pencil\"></i> Edit Registration"), edit_link, :remote=>true, class: "btn btn-block btn-success" if @current_device.super_admin? and @registration.can_be_edited? %>
|
59
59
|
|
60
|
-
<%#= link_to raw("<i class=\"
|
60
|
+
<%#= link_to raw("<i class=\"fa-trash\"></i> Delete Registration"), delete_link, method: :delete, registration: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "btn btn-block btn-danger btn-only-hover" if @current_device.super_admin? and @registration.can_be_deleted? %>
|
61
61
|
|
62
62
|
<div class="visible-sm visible-xs mb-50"></div>
|
63
63
|
|
@@ -165,7 +165,7 @@
|
|
165
165
|
</tr>
|
166
166
|
|
167
167
|
<tr>
|
168
|
-
<th>Designation</th><td><%= @user.try(:
|
168
|
+
<th>Designation</th><td><%= @user.try(:designation_name) %></td>
|
169
169
|
<th>Status</th><td>
|
170
170
|
<% if @user.pending? %>
|
171
171
|
<span class="label label-default">Pending</span>
|
@@ -31,9 +31,9 @@
|
|
31
31
|
<% if display_manage_links? %>
|
32
32
|
|
33
33
|
<td class="action-links hidden-xs hidden-sm" style="width:10%">
|
34
|
-
<%= link_to raw("<i class=\"
|
34
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "edit" if role.can_be_edited? and display_edit_links? %>
|
35
35
|
|
36
|
-
<%= link_to raw("<i class=\"
|
36
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if role.can_be_deleted? and display_delete_links? %>
|
37
37
|
</td>
|
38
38
|
|
39
39
|
<% end %>
|
@@ -16,9 +16,9 @@
|
|
16
16
|
<% if display_manage_links? %>
|
17
17
|
|
18
18
|
<td class="action-links hidden-xs hidden-sm" style="width:10%">
|
19
|
-
<%= link_to raw("<i class=\"
|
19
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "edit" if role.can_be_edited? and display_edit_links? %>
|
20
20
|
|
21
|
-
<%= link_to raw("<i class=\"
|
21
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" if role.can_be_deleted? and display_delete_links? %>
|
22
22
|
</td>
|
23
23
|
|
24
24
|
<% end %>
|
@@ -23,9 +23,9 @@
|
|
23
23
|
<% edit_link = edit_role_path(id: @role.id) %>
|
24
24
|
<% delete_link = role_path(id: @role.id) %>
|
25
25
|
|
26
|
-
<%= link_to raw("<i class=\"
|
26
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i> Edit Role"), edit_link, :remote=>true, class: "btn btn-block btn-success" if @current_user.super_admin? and @role.can_be_edited? and display_edit_links? %>
|
27
27
|
|
28
|
-
<%= link_to raw("<i class=\"
|
28
|
+
<%= link_to raw("<i class=\"fa-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? and display_delete_links? %>
|
29
29
|
|
30
30
|
<div class="visible-sm visible-xs mb-50"></div>
|
31
31
|
|
@@ -45,7 +45,7 @@
|
|
45
45
|
|
46
46
|
<td class="action-links" style="width:10%">
|
47
47
|
|
48
|
-
<%= link_to raw("<i class=\"
|
48
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Remove Role"), delete_link, method: :delete, user: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
|
49
49
|
|
50
50
|
</td>
|
51
51
|
|
@@ -29,7 +29,7 @@
|
|
29
29
|
|
30
30
|
<td class="action-links" style="width:10%">
|
31
31
|
|
32
|
-
<%= link_to raw("<i class=\"
|
32
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Remove Role"), delete_link, method: :delete, user: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
|
33
33
|
|
34
34
|
</td>
|
35
35
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<%= theme_form_field(@user, :name) %>
|
12
12
|
<%= theme_form_field(@user, :username) %>
|
13
13
|
<%= theme_form_field(@user, :email) %>
|
14
|
-
<%= theme_form_field(@user, :
|
14
|
+
<%= theme_form_field(@user, :designation_name, required: false) %>
|
15
15
|
</div>
|
16
16
|
|
17
17
|
<div class="col-md-6 col-xs-12">
|
@@ -68,9 +68,9 @@
|
|
68
68
|
<% if display_manage_links? %>
|
69
69
|
<td class="action-links hidden-xs hidden-sm" style="width:15%">
|
70
70
|
|
71
|
-
<%= link_to raw("<i class=\"
|
71
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i> Edit User"), edit_link, :remote=>true, class: "edit" if user.can_be_edited? && display_edit_links? %>
|
72
72
|
|
73
|
-
<%= link_to raw("<i class=\"
|
73
|
+
<%= link_to raw("<i class=\"fa-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? && user.can_be_deleted? && (@current_user != user) %>
|
74
74
|
</td>
|
75
75
|
<% end %>
|
76
76
|
|
@@ -52,9 +52,9 @@
|
|
52
52
|
<% if display_manage_links? %>
|
53
53
|
<td class="action-links hidden-xs hidden-sm" style="width:15%">
|
54
54
|
|
55
|
-
<%= link_to raw("<i class=\"
|
55
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i> Edit User"), edit_link, :remote=>true, class: "edit" if user.can_be_edited? && display_edit_links? %>
|
56
56
|
|
57
|
-
<%= link_to raw("<i class=\"
|
57
|
+
<%= link_to raw("<i class=\"fa-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? && user.can_be_deleted? && (@current_user != user) %>
|
58
58
|
</td>
|
59
59
|
<% end %>
|
60
60
|
|
@@ -23,7 +23,7 @@
|
|
23
23
|
<div class="visible-sm visible-xs mt-50"></div>
|
24
24
|
|
25
25
|
<%= theme_panel_heading(@user.name) %>
|
26
|
-
<%= theme_panel_sub_heading(@user.
|
26
|
+
<%= theme_panel_sub_heading(@user.designation_name, "#") if @user.designation_name %>
|
27
27
|
|
28
28
|
<%= clear_tag(10) %>
|
29
29
|
|
@@ -51,13 +51,13 @@
|
|
51
51
|
<% edit_link = edit_user_path(id: @user.id) %>
|
52
52
|
<% delete_link = user_path(id: @user.id) %>
|
53
53
|
|
54
|
-
<%= link_to raw("<i class=\"
|
54
|
+
<%= link_to raw("<i class=\"fa-pencil\"></i> Edit User"), edit_link, :remote=>true, class: "btn btn-block btn-success" if @user.can_be_edited? %>
|
55
55
|
|
56
|
-
<%= link_to raw("<i class=\"
|
56
|
+
<%= link_to raw("<i class=\"fa-trash\"></i> Delete"), 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 @user.can_be_deleted? && (@current_user != @user) && @current_permission && @current_permission.can_delete? %>
|
57
57
|
|
58
58
|
<% if @current_user.super_admin? %>
|
59
59
|
|
60
|
-
<%= link_to raw("<i class=\"
|
60
|
+
<%= link_to raw("<i class=\"fa-badge-check\"></i> Masquerade"), masquerade_user_path(@user), method: :put, data: { confirm: "Are you sure? Do you really want to logout current session and login as #{@user.name}?" }, class: "btn btn-block btn-gray btn-only-hover" if @current_user != @user %>
|
61
61
|
|
62
62
|
<!-- Remove Super Admin -->
|
63
63
|
<%= link_to raw("<i class=\"fa fa-remove mr-5\"></i> Remove Super Admin"), remove_super_admin_user_path(id: @user.id), method: :put, :remote=>true, role: "menuitem", tabindex: "-1", :class=>"btn btn-block btn-danger btn-only-hover" if @user.super_admin? && (@current_user != @user) %>
|
@@ -102,7 +102,9 @@
|
|
102
102
|
<tr><th>Gender</th><td><%= @user.gender %></td></tr>
|
103
103
|
<tr><th>Date of Birth</th><td><%= @user.date_of_birth.strftime("%m/%d/%Y") if @user.date_of_birth %></td></tr>
|
104
104
|
|
105
|
-
<tr><th>Designation</th><td><%= @user.
|
105
|
+
<tr><th>Designation</th><td><%= @user.designation_name %></td></tr>
|
106
|
+
<tr><th>Organisation</th><td><%= @user.organisation_name %></td></tr>
|
107
|
+
|
106
108
|
<tr><th>Status</th><td>
|
107
109
|
<% if @user.pending? %>
|
108
110
|
<span class="label label-default">Pending</span>
|
@@ -113,6 +115,7 @@
|
|
113
115
|
<% end %>
|
114
116
|
</td>
|
115
117
|
</tr>
|
118
|
+
<tr><th></th><td></td></tr>
|
116
119
|
|
117
120
|
<% if @current_user.super_admin? %>
|
118
121
|
<tr><th>Dummy?</th><td><%= @user.dummy.to_s.titleize %></td></tr>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
<%= theme_button('Refresh', 'refresh', users_path(sa: params[:sa]), classes: "pull-left mr-10", btn_type: "white") %>
|
32
32
|
|
33
|
-
<%= theme_button('Manage Roles', 'nothing
|
33
|
+
<%= theme_button('Manage Roles', 'nothing fa-graduation-cap', roles_path(), classes: "pull-left mr-10", btn_type: "white", remote: false) if @current_user.has_create_permission?(Role) %>
|
34
34
|
|
35
35
|
<!-- Single button -->
|
36
36
|
<div class="ml-10 btn-group hidden">
|
data/db/data/dummy/users.csv
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
name,username,
|
1
|
+
name,username,designation_name,email,phone,super_admin,status
|
2
2
|
Krishna Prasad Varma,kpvarma,Site Admin,prasad@rightsolutions.io,,TRUE,approved
|
3
3
|
Vinodh Ellath,vinodh,Site Admin,vinodh@rightsolutions.io,,TRUE,approved
|
4
4
|
Junaid Ramzan,junaid.ramzan,Site Admin,junaid.ramzan@gmail.com,,TRUE,approved
|
data/db/data/users.csv
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
name,username,
|
1
|
+
name,username,designation_name,email,phone,super_admin,status
|
2
2
|
Krishna Prasad Varma,kpvarma,Site Admin,prasad@rightsolutions.io,,TRUE,approved
|
3
3
|
Vinodh Ellath,vinodh,Site Admin,vinodh@rightsolutions.io,,TRUE,approved
|
4
4
|
Junaid Ramzan,junaid.ramzan,Site Admin,junaid.ramzan@gmail.com,,TRUE,approved
|
@@ -7,7 +7,8 @@ class CreateUsers < ActiveRecord::Migration[5.0]
|
|
7
7
|
t.string :username, :null => false, :limit=>32
|
8
8
|
t.string :email, :null => false
|
9
9
|
t.string :phone, :null => true, :limit=>24
|
10
|
-
t.string :
|
10
|
+
t.string :designation_name, :null => true, :limit=>56
|
11
|
+
t.string :organisation_name, :null => true, :limit=>56
|
11
12
|
|
12
13
|
t.boolean :super_admin, :null => true, default: false
|
13
14
|
|
data/lib/tasks/usman/data.rake
CHANGED
@@ -9,7 +9,7 @@ namespace 'usman' do
|
|
9
9
|
desc "Import all data in sequence"
|
10
10
|
task 'all' => :environment do
|
11
11
|
|
12
|
-
import_list = ["users", "permissions"]
|
12
|
+
import_list = ["users", "permissions", "users_roles"]
|
13
13
|
|
14
14
|
import_list.each do |item|
|
15
15
|
print "Importing #{item.titleize} \t".yellow
|
@@ -44,12 +44,29 @@ namespace 'usman' do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
desc "Import Users Roles"
|
48
|
+
task :users_roles => :environment do
|
49
|
+
verbose = true
|
50
|
+
verbose = false if ["false", "f","0","no","n"].include?(ENV["verbose"].to_s.downcase.strip)
|
51
|
+
|
52
|
+
destroy_all = false
|
53
|
+
destroy_all = true if ["true", "t","1","yes","y"].include?(ENV["destroy_all"].to_s.downcase.strip)
|
54
|
+
|
55
|
+
path = Rails.root.join('db', 'data', "users_roles.csv")
|
56
|
+
path = Usman::Engine.root.join('db', 'data', "users_roles.csv") unless File.exists?(path)
|
57
|
+
|
58
|
+
# FIXME - Don't know how to clean up a HABTM intermediate table contents
|
59
|
+
# cls_name.constantize.destroy_all if destroy_all
|
60
|
+
User.import_roles_data_file(path, true, verbose)
|
61
|
+
puts "Importing Completed".green if verbose
|
62
|
+
end
|
63
|
+
|
47
64
|
namespace 'dummy' do
|
48
65
|
|
49
66
|
desc "Import all dummy data in sequence"
|
50
67
|
task 'all' => :environment do
|
51
68
|
|
52
|
-
import_list = ["users", "permissions"]
|
69
|
+
import_list = ["users", "permissions", "users_roles"]
|
53
70
|
|
54
71
|
import_list.each do |item|
|
55
72
|
print "Loading #{item.split(':').last.titleize} \t".yellow
|
@@ -83,6 +100,23 @@ namespace 'usman' do
|
|
83
100
|
puts "Importing Completed".green if verbose
|
84
101
|
end
|
85
102
|
end
|
103
|
+
|
104
|
+
desc "Import Users Roles"
|
105
|
+
task :users_roles => :environment do
|
106
|
+
verbose = true
|
107
|
+
verbose = false if ["false", "f","0","no","n"].include?(ENV["verbose"].to_s.downcase.strip)
|
108
|
+
|
109
|
+
destroy_all = false
|
110
|
+
destroy_all = true if ["true", "t","1","yes","y"].include?(ENV["destroy_all"].to_s.downcase.strip)
|
111
|
+
|
112
|
+
path = Rails.root.join('db', 'data', "users_roles.csv")
|
113
|
+
path = Usman::Engine.root.join('db', 'data', 'dummy', "users_roles.csv") unless File.exists?(path)
|
114
|
+
|
115
|
+
# FIXME - Don't know how to clean up a HABTM intermediate table contents
|
116
|
+
# cls_name.constantize.destroy_all if destroy_all
|
117
|
+
User.import_roles_data_file(path, true, verbose)
|
118
|
+
puts "Importing Completed".green if verbose
|
119
|
+
end
|
86
120
|
end
|
87
121
|
|
88
122
|
end
|
data/lib/usman/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: usman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0.pre.materialize
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kpvarma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -644,9 +644,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
644
644
|
version: '0'
|
645
645
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
646
646
|
requirements:
|
647
|
-
- - "
|
647
|
+
- - ">"
|
648
648
|
- !ruby/object:Gem::Version
|
649
|
-
version:
|
649
|
+
version: 1.3.1
|
650
650
|
requirements: []
|
651
651
|
rubyforge_project:
|
652
652
|
rubygems_version: 2.7.3
|