caboose-cms 0.7.53 → 0.7.54
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.
- checksums.yaml +4 -4
- data/app/controllers/caboose/application_controller.rb +8 -1
- data/app/models/caboose/#user.rb# +155 -0
- data/app/models/caboose/user.rb +55 -55
- data/lib/caboose/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e77bfc7049d66aec7c82588b4ebc76a526a2c7c2
|
|
4
|
+
data.tar.gz: d30b6a71566969ecf0c813c2b72f2e7f9d0a7f88
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 28a87f329ba169a6fbe7e51f9e080146cc59f46a7e77341de1ba608a7fffaa026be8f1b65f6b357e55aa8f765117988b5db186b5c2d01eeec2712b500036a350
|
|
7
|
+
data.tar.gz: 4a39ed8d4e69925f9cd3de10dc4042e3d821fe58e19131762c01176cb7f788f770b71e2dcd47aa0039e518a5758539025c4e3e75e7767e0cc164d11d8dc1a19b
|
|
@@ -124,7 +124,14 @@ module Caboose
|
|
|
124
124
|
|
|
125
125
|
# Logs in a user
|
|
126
126
|
def login_user(user, remember = false)
|
|
127
|
-
session["app_user"] =
|
|
127
|
+
session["app_user"] = Caboose::StdClass.new(
|
|
128
|
+
user.id ,
|
|
129
|
+
user.site_id ,
|
|
130
|
+
user.first_name ,
|
|
131
|
+
user.last_name ,
|
|
132
|
+
user.username ,
|
|
133
|
+
user.email ,
|
|
134
|
+
)
|
|
128
135
|
cookies.permanent[:caboose_user_id] = user.id if remember
|
|
129
136
|
end
|
|
130
137
|
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
class Caboose::User < ActiveRecord::Base
|
|
2
|
+
self.table_name = "users"
|
|
3
|
+
|
|
4
|
+
belongs_to :site, :class_name => 'Caboose::Site'
|
|
5
|
+
has_many :role_memberships
|
|
6
|
+
has_many :roles, :through => :role_memberships
|
|
7
|
+
has_attached_file :image,
|
|
8
|
+
:path => ':caboose_prefixusers/:id_:style.:extension',
|
|
9
|
+
:default_url => 'http://placehold.it/300x300',
|
|
10
|
+
:styles => {
|
|
11
|
+
:tiny => '150x200>',
|
|
12
|
+
:thumb => '300x400>',
|
|
13
|
+
:large => '600x800>'
|
|
14
|
+
}
|
|
15
|
+
do_not_validate_attachment_file_type :image
|
|
16
|
+
attr_accessible :id, :site_id, :email, :first_name, :last_name, :username, :token, :password, :phone, :timezone
|
|
17
|
+
|
|
18
|
+
validates :email, :presence => true
|
|
19
|
+
|
|
20
|
+
ADMIN_USER_ID = 1
|
|
21
|
+
LOGGED_OUT_USER_ID = 2
|
|
22
|
+
|
|
23
|
+
before_save do
|
|
24
|
+
self.email = self.email.downcase if self.email
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.logged_out_user(site_id)
|
|
28
|
+
return self.where(:site_id => site_id, :username => 'elo').first
|
|
29
|
+
#return self.where(:id => self::LOGGED_OUT_USER_ID).first
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.logged_out_user_id(site_id)
|
|
33
|
+
return self.where(:site_id => site_id, :username => 'elo').limit(1).pluck(:id)[0]
|
|
34
|
+
#return self::LOGGED_OUT_USER_ID
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def is_logged_out_user?
|
|
38
|
+
return self.id == Caboose::User.logged_out_user_id(self.site_id)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def is_allowed(resource, action)
|
|
42
|
+
elo = Caboose::Role.logged_out_role(self.site_id)
|
|
43
|
+
elo_is_allowed = elo.is_allowed(resource, action)
|
|
44
|
+
return true if elo_is_allowed
|
|
45
|
+
return false if !elo_is_allowed && self.is_logged_out_user?
|
|
46
|
+
eli = Caboose::Role.logged_in_role(self.site_id)
|
|
47
|
+
return true if self.id != elo.id && eli.is_allowed(resource, action)
|
|
48
|
+
for role in roles
|
|
49
|
+
#Caboose.log("Checking permissions for #{role.name} role")
|
|
50
|
+
if role.is_allowed(resource, action)
|
|
51
|
+
#Caboose.log("Role #{role.name} is allowed to view page")
|
|
52
|
+
return true
|
|
53
|
+
else
|
|
54
|
+
#Caboose.log("Role #{role.name} is not allowed to view page")
|
|
55
|
+
end
|
|
56
|
+
#return true if role.is_allowed(resource, action)
|
|
57
|
+
end
|
|
58
|
+
return false;
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def self.validate_token(token)
|
|
62
|
+
user = self.where('token' => token).first
|
|
63
|
+
return user
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def add_to_role_with_name(role_name)
|
|
67
|
+
r = Caboose::Role.where(:name => role_name).first
|
|
68
|
+
return false if r.nil?
|
|
69
|
+
return add_to_role(r.id)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def add_to_role(role_id)
|
|
73
|
+
r = Caboose::Role.find(role_id)
|
|
74
|
+
return false if r.nil?
|
|
75
|
+
|
|
76
|
+
if (!is_member?(r.id))
|
|
77
|
+
roles.push r
|
|
78
|
+
save
|
|
79
|
+
end
|
|
80
|
+
return true
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def is_member?(role_id)
|
|
84
|
+
roles.each do |r|
|
|
85
|
+
return true if (r.id == role_id)
|
|
86
|
+
end
|
|
87
|
+
return false
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def self.user_for_reset_id(reset_id)
|
|
91
|
+
return nil if reset_id.nil?
|
|
92
|
+
d = DateTime.now - 3.days
|
|
93
|
+
if self.where("password_reset_id = ? and password_reset_sent > ?", reset_id, d).exists?
|
|
94
|
+
return self.where("password_reset_id = ? and password_reset_sent > ?", reset_id, d).first
|
|
95
|
+
end
|
|
96
|
+
return nil
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
#def marshal_dump
|
|
100
|
+
# [
|
|
101
|
+
# self.id ,
|
|
102
|
+
# self.site_id ,
|
|
103
|
+
# self.first_name ,
|
|
104
|
+
# self.last_name ,
|
|
105
|
+
# self.username ,
|
|
106
|
+
# self.email ,
|
|
107
|
+
# self.address ,
|
|
108
|
+
# self.address2 ,
|
|
109
|
+
# self.city ,
|
|
110
|
+
# self.state ,
|
|
111
|
+
# self.zip ,
|
|
112
|
+
# self.phone ,
|
|
113
|
+
# self.fax ,
|
|
114
|
+
# self.timezone ,
|
|
115
|
+
# self.password ,
|
|
116
|
+
# self.password_reset_id ,
|
|
117
|
+
# self.password_reset_sent ,
|
|
118
|
+
# self.token ,
|
|
119
|
+
# self.date_created ,
|
|
120
|
+
# self.image ,
|
|
121
|
+
# self.is_guest ,
|
|
122
|
+
# self.customer_profile_id ,
|
|
123
|
+
# self.payment_profile_id ,
|
|
124
|
+
# self.locked
|
|
125
|
+
# ]
|
|
126
|
+
#end
|
|
127
|
+
#
|
|
128
|
+
#def marshal_load array
|
|
129
|
+
# self.id ,
|
|
130
|
+
# self.site_id ,
|
|
131
|
+
# self.first_name ,
|
|
132
|
+
# self.last_name ,
|
|
133
|
+
# self.username ,
|
|
134
|
+
# self.email ,
|
|
135
|
+
# self.address ,
|
|
136
|
+
# self.address2 ,
|
|
137
|
+
# self.city ,
|
|
138
|
+
# self.state ,
|
|
139
|
+
# self.zip ,
|
|
140
|
+
# self.phone ,
|
|
141
|
+
# self.fax ,
|
|
142
|
+
# self.timezone ,
|
|
143
|
+
# self.password ,
|
|
144
|
+
# self.password_reset_id ,
|
|
145
|
+
# self.password_reset_sent ,
|
|
146
|
+
# self.token ,
|
|
147
|
+
# self.date_created ,
|
|
148
|
+
# self.image ,
|
|
149
|
+
# self.is_guest ,
|
|
150
|
+
# self.customer_profile_id ,
|
|
151
|
+
# self.payment_profile_id ,
|
|
152
|
+
# self.locked = array
|
|
153
|
+
#end
|
|
154
|
+
|
|
155
|
+
end
|
data/app/models/caboose/user.rb
CHANGED
|
@@ -96,60 +96,60 @@ class Caboose::User < ActiveRecord::Base
|
|
|
96
96
|
return nil
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
-
def marshal_dump
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def marshal_load array
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
end
|
|
99
|
+
#def marshal_dump
|
|
100
|
+
# [
|
|
101
|
+
# self.id ,
|
|
102
|
+
# self.site_id ,
|
|
103
|
+
# self.first_name ,
|
|
104
|
+
# self.last_name ,
|
|
105
|
+
# self.username ,
|
|
106
|
+
# self.email ,
|
|
107
|
+
# self.address ,
|
|
108
|
+
# self.address2 ,
|
|
109
|
+
# self.city ,
|
|
110
|
+
# self.state ,
|
|
111
|
+
# self.zip ,
|
|
112
|
+
# self.phone ,
|
|
113
|
+
# self.fax ,
|
|
114
|
+
# self.timezone ,
|
|
115
|
+
# self.password ,
|
|
116
|
+
# self.password_reset_id ,
|
|
117
|
+
# self.password_reset_sent ,
|
|
118
|
+
# self.token ,
|
|
119
|
+
# self.date_created ,
|
|
120
|
+
# self.image ,
|
|
121
|
+
# self.is_guest ,
|
|
122
|
+
# self.customer_profile_id ,
|
|
123
|
+
# self.payment_profile_id ,
|
|
124
|
+
# self.locked
|
|
125
|
+
# ]
|
|
126
|
+
#end
|
|
127
|
+
#
|
|
128
|
+
#def marshal_load array
|
|
129
|
+
# self.id ,
|
|
130
|
+
# self.site_id ,
|
|
131
|
+
# self.first_name ,
|
|
132
|
+
# self.last_name ,
|
|
133
|
+
# self.username ,
|
|
134
|
+
# self.email ,
|
|
135
|
+
# self.address ,
|
|
136
|
+
# self.address2 ,
|
|
137
|
+
# self.city ,
|
|
138
|
+
# self.state ,
|
|
139
|
+
# self.zip ,
|
|
140
|
+
# self.phone ,
|
|
141
|
+
# self.fax ,
|
|
142
|
+
# self.timezone ,
|
|
143
|
+
# self.password ,
|
|
144
|
+
# self.password_reset_id ,
|
|
145
|
+
# self.password_reset_sent ,
|
|
146
|
+
# self.token ,
|
|
147
|
+
# self.date_created ,
|
|
148
|
+
# self.image ,
|
|
149
|
+
# self.is_guest ,
|
|
150
|
+
# self.customer_profile_id ,
|
|
151
|
+
# self.payment_profile_id ,
|
|
152
|
+
# self.locked = array
|
|
153
|
+
#end
|
|
154
154
|
|
|
155
155
|
end
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: caboose-cms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.54
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- William Barry
|
|
@@ -761,6 +761,7 @@ files:
|
|
|
761
761
|
- app/mailers/caboose/caboose_mailer.rb
|
|
762
762
|
- app/mailers/caboose/login_mailer.rb
|
|
763
763
|
- app/mailers/caboose/orders_mailer.rb
|
|
764
|
+
- app/models/caboose/#user.rb#
|
|
764
765
|
- app/models/caboose/ab_option.rb
|
|
765
766
|
- app/models/caboose/ab_testing.rb
|
|
766
767
|
- app/models/caboose/ab_value.rb
|