usman 0.1.5dev3 → 0.1.5dev4
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/admin/users_controller.rb +1 -1
- data/app/helpers/usman/authentication_helper.rb +2 -2
- data/app/models/feature.rb +21 -8
- data/app/models/user.rb +28 -17
- data/app/models/usman/application_record.rb +1 -2
- data/app/views/usman/admin/users/_index.html.erb +1 -1
- data/app/views/usman/admin/users/_row.html.erb +1 -1
- data/app/views/usman/admin/users/index.html.erb +1 -1
- data/app/views/usman/sessions/_form.html.erb +1 -1
- data/lib/usman/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 908dce0296be6976f2db177e9586962af623052d
|
4
|
+
data.tar.gz: b5b7162ad3de55dc217bdb1057d27c2a87b0ca9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f27ef6f08daeeade4c7d67e6f4408f9cd78cb275c4590388258f26eec4e0e0c7316f9a5c09b7aa3cb5d5c34b5518a296af2591813033989f2832350e1af9d5b7
|
7
|
+
data.tar.gz: a7e54900294fd49152a56307ad33725837f39b9ed1794ac747036650df08621ae3e7012d0eb310df8e4493e029c33d3ab197e51279613e60319eea2cc74de15f
|
@@ -59,7 +59,7 @@ module Usman
|
|
59
59
|
|
60
60
|
# Normal users should not be able to view super admins
|
61
61
|
# He should not be seeing admins even while searching
|
62
|
-
if @current_user.
|
62
|
+
if @current_user.super_admin?
|
63
63
|
@relation = @relation.where("super_admin IS #{@super_admin.to_s.upcase}") if @super_admin.nil? == false && @query.nil?
|
64
64
|
else
|
65
65
|
@relation = @relation.where("super_admin IS FALSE")
|
@@ -89,7 +89,7 @@ module Usman
|
|
89
89
|
redirect_or_popup_to_default_sign_in_page
|
90
90
|
return
|
91
91
|
else
|
92
|
-
@current_user.update_token if @current_user.token_about_to_expire?
|
92
|
+
@current_user.update_token! if @current_user.token_about_to_expire?
|
93
93
|
end
|
94
94
|
else
|
95
95
|
text = "#{I18n.t("authentication.permission_denied.heading")}: #{I18n.t("authentication.permission_denied.message")}"
|
@@ -102,7 +102,7 @@ module Usman
|
|
102
102
|
|
103
103
|
# This method is usually used as a before filter from admin controllers to ensure that the logged in user is a super admin
|
104
104
|
def require_super_admin
|
105
|
-
unless @current_user.
|
105
|
+
unless @current_user.super_admin?
|
106
106
|
text = "#{I18n.t("authentication.permission_denied.heading")}: #{I18n.t("authentication.permission_denied.message")}"
|
107
107
|
set_flash_message(text, :error, false) if defined?(flash) && flash
|
108
108
|
|
data/app/models/feature.rb
CHANGED
@@ -23,7 +23,7 @@ class Feature < Usman::ApplicationRecord
|
|
23
23
|
has_one :feature_image, :as => :imageable, :dependent => :destroy, :class_name => "Image::FeatureImage"
|
24
24
|
|
25
25
|
# Validations
|
26
|
-
validates :name, presence: true
|
26
|
+
validates :name, presence: true, length: {minimum: 3, maximum: 250}
|
27
27
|
validates :status, :presence => true, :inclusion => {:in => STATUS.keys, :presence_of => :status, :message => "%{value} is not a valid status" }
|
28
28
|
|
29
29
|
# ------------------
|
@@ -67,13 +67,12 @@ class Feature < Usman::ApplicationRecord
|
|
67
67
|
return error_object
|
68
68
|
end
|
69
69
|
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
end
|
70
|
+
# ------------------
|
71
|
+
# Instance Methods
|
72
|
+
# ------------------
|
73
|
+
|
74
|
+
# Status Methods
|
75
|
+
# --------------
|
77
76
|
|
78
77
|
# * Return true if the user is not published, else false.
|
79
78
|
# == Examples
|
@@ -126,6 +125,9 @@ class Feature < Usman::ApplicationRecord
|
|
126
125
|
self.update_attribute(:status, DISABLED)
|
127
126
|
end
|
128
127
|
|
128
|
+
# Permission Methods
|
129
|
+
# ------------------
|
130
|
+
|
129
131
|
def can_be_destroyed?
|
130
132
|
return true
|
131
133
|
end
|
@@ -141,5 +143,16 @@ class Feature < Usman::ApplicationRecord
|
|
141
143
|
def can_be_removed?
|
142
144
|
published? or unpublished? or disabled?
|
143
145
|
end
|
146
|
+
|
147
|
+
# Other Methods
|
148
|
+
# -------------
|
149
|
+
|
150
|
+
# * Return full name
|
151
|
+
# == Examples
|
152
|
+
# >>> feature.display_name
|
153
|
+
# => "Products"
|
154
|
+
def display_name
|
155
|
+
"#{name}"
|
156
|
+
end
|
144
157
|
|
145
158
|
end
|
data/app/models/user.rb
CHANGED
@@ -25,7 +25,7 @@ class User < Usman::ApplicationRecord
|
|
25
25
|
SESSION_TIME_OUT = 120.minutes
|
26
26
|
|
27
27
|
# Validations
|
28
|
-
validates :name, presence: true
|
28
|
+
validates :name, presence: true, length: {minimum: 3, maximum: 250}
|
29
29
|
validate_username :username
|
30
30
|
validate_email :email
|
31
31
|
validate_password :password, condition_method: :should_validate_password?
|
@@ -105,14 +105,9 @@ class User < Usman::ApplicationRecord
|
|
105
105
|
# ------------------
|
106
106
|
# Instance variables
|
107
107
|
# ------------------
|
108
|
-
|
109
|
-
#
|
110
|
-
#
|
111
|
-
# >>> user.display_name
|
112
|
-
# => "Joe Black"
|
113
|
-
def display_name
|
114
|
-
"#{name}"
|
115
|
-
end
|
108
|
+
|
109
|
+
# Status Methods
|
110
|
+
# --------------
|
116
111
|
|
117
112
|
# * Return true if the user is not approved, else false.
|
118
113
|
# == Examples
|
@@ -165,9 +160,8 @@ class User < Usman::ApplicationRecord
|
|
165
160
|
self.update_attribute(:status, SUSPENDED)
|
166
161
|
end
|
167
162
|
|
168
|
-
|
169
|
-
|
170
|
-
end
|
163
|
+
# Authentication Methods
|
164
|
+
# ----------------------
|
171
165
|
|
172
166
|
def start_session
|
173
167
|
# FIX ME - specs are not written to ensure that all these data are saved
|
@@ -185,11 +179,12 @@ class User < Usman::ApplicationRecord
|
|
185
179
|
|
186
180
|
def end_session
|
187
181
|
# Reseting the auth token for user when he logs out.
|
182
|
+
# Resetting the token_created_at to nil
|
188
183
|
# (Time.now - 1.second)
|
189
184
|
self.update_attributes auth_token: SecureRandom.hex, token_created_at: nil
|
190
185
|
end
|
191
186
|
|
192
|
-
def update_token
|
187
|
+
def update_token!
|
193
188
|
self.update_attribute(:token_created_at, Time.now)
|
194
189
|
end
|
195
190
|
|
@@ -215,9 +210,8 @@ class User < Usman::ApplicationRecord
|
|
215
210
|
self.reset_password_sent_at = Time.now unless self.reset_password_sent_at
|
216
211
|
end
|
217
212
|
|
218
|
-
|
219
|
-
|
220
|
-
end
|
213
|
+
# Permission Methods
|
214
|
+
# ------------------
|
221
215
|
|
222
216
|
def set_permission(feature_name, **options)
|
223
217
|
options.reverse_merge!(
|
@@ -282,6 +276,9 @@ class User < Usman::ApplicationRecord
|
|
282
276
|
!suspended?
|
283
277
|
end
|
284
278
|
|
279
|
+
# Role Methods
|
280
|
+
# ------------
|
281
|
+
|
285
282
|
def add_role(role)
|
286
283
|
return false unless self.approved?
|
287
284
|
role = Role.find_by_name(role) if role.is_a?(String)
|
@@ -306,7 +303,21 @@ class User < Usman::ApplicationRecord
|
|
306
303
|
else
|
307
304
|
return false
|
308
305
|
end
|
309
|
-
|
306
|
+
end
|
307
|
+
|
308
|
+
# Other Methods
|
309
|
+
# -------------
|
310
|
+
|
311
|
+
# * Return full name
|
312
|
+
# == Examples
|
313
|
+
# >>> user.display_name
|
314
|
+
# => "Joe Black"
|
315
|
+
def display_name
|
316
|
+
"#{name}"
|
317
|
+
end
|
318
|
+
|
319
|
+
def default_image_url(size="small")
|
320
|
+
"/assets/kuppayam/defaults/user-#{size}.png"
|
310
321
|
end
|
311
322
|
|
312
323
|
private
|
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
<td class="hidden-xs hidden-sm"><%= link_to user.email, admin_user_path(user), remote: true, class: "email" %></td>
|
46
46
|
|
47
|
-
<% if @current_user.
|
47
|
+
<% if @current_user.super_admin? %>
|
48
48
|
<td class="hidden-xs hidden-sm">
|
49
49
|
<% if user.super_admin? %>
|
50
50
|
<span class="mr-10 mt-5 label label-warning">Super Admin</span>
|
@@ -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.
|
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>
|
@@ -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.
|
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>
|
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.1.
|
4
|
+
version: 0.1.5dev4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kpvarma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -90,14 +90,14 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - "~>"
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.1.
|
93
|
+
version: 0.1.5dev4
|
94
94
|
type: :runtime
|
95
95
|
prerelease: false
|
96
96
|
version_requirements: !ruby/object:Gem::Requirement
|
97
97
|
requirements:
|
98
98
|
- - "~>"
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version: 0.1.
|
100
|
+
version: 0.1.5dev4
|
101
101
|
- !ruby/object:Gem::Dependency
|
102
102
|
name: bcrypt
|
103
103
|
requirement: !ruby/object:Gem::Requirement
|