kit_cms 2.3.20 → 2.3.22
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/images/kit/toolbar/smile.png +0 -0
- data/app/assets/images/kit/toolbar/wink.gif +0 -0
- data/app/assets/images/kit/toolbar/wink.png +0 -0
- data/app/assets/javascripts/codemirror/editor.js +55 -17
- data/app/assets/javascripts/codemirror/jquery.js +0 -1
- data/app/assets/javascripts/codemirror/ruby.js +196 -0
- data/app/assets/javascripts/jquery.js +3036 -2838
- data/app/assets/javascripts/kit/utilities.js +655 -586
- data/app/assets/stylesheets/codemirror/style.css +1 -1
- data/app/assets/stylesheets/codemirror/theme.css +23 -3
- data/app/assets/stylesheets/kit/calendar.css +6 -1
- data/app/assets/stylesheets/kit/cms/cms.css +36 -0
- data/app/assets/stylesheets/kit/forums.css +5 -1
- data/app/assets/stylesheets/kit/kit.css +3 -1
- data/app/controllers/account_controller.rb +306 -0
- data/app/controllers/ad_controller.rb +2 -0
- data/app/controllers/admin/ad_units_controller.rb +1 -1
- data/app/controllers/admin/ad_zones_controller.rb +15 -0
- data/app/controllers/admin/ads_controller.rb +5 -0
- data/app/controllers/admin/block_controller.rb +1 -65
- data/app/controllers/admin/blocks_controller.rb +2 -0
- data/app/controllers/admin/content_controller.rb +3 -1
- data/app/controllers/admin/dashboard_controller.rb +28 -4
- data/app/controllers/admin/dj_controller.rb +45 -0
- data/app/controllers/admin/help_controller.rb +1 -1
- data/app/controllers/admin/html_asset_controller.rb +0 -12
- data/app/controllers/admin/q_controller.rb +120 -0
- data/app/controllers/admin/user_controller.rb +4 -4
- data/app/controllers/api_controller.rb +34 -0
- data/app/controllers/calendar_controller.rb +1 -1
- data/app/controllers/form_controller.rb +3 -3
- data/app/controllers/forum_controller.rb +39 -29
- data/app/controllers/kit_controller.rb +42 -15
- data/app/controllers/pages_controller.rb +25 -5
- data/app/controllers/q_controller.rb +235 -0
- data/app/controllers/repo_controller.rb +7 -0
- data/app/controllers/user_controller.rb +14 -10
- data/app/controllers/utility_controller.rb +1 -1
- data/app/helpers/account_helper.rb +47 -0
- data/app/helpers/admin/layouts_helper.rb +8 -0
- data/app/helpers/admin/page_templates_helper.rb +8 -0
- data/app/helpers/ads_helper.rb +11 -12
- data/app/helpers/calendar_helper.rb +6 -2
- data/app/helpers/form_data_helper.rb +1 -1
- data/app/helpers/form_helper.rb +8 -0
- data/app/helpers/forum_helper.rb +5 -1
- data/app/helpers/kit_helper.rb +65 -35
- data/app/helpers/kit_modules_helper.rb +4 -0
- data/app/helpers/user_helper.rb +0 -28
- data/app/jobs/page_link_job.rb +34 -0
- data/app/jobs/queue_job.rb +134 -0
- data/app/mailers/notification.rb +10 -0
- data/app/mailers/queue_mailer.rb +13 -0
- data/app/models/ad.rb +6 -6
- data/app/models/ad_unit.rb +1 -1
- data/app/models/ad_zone.rb +4 -0
- data/app/models/block.rb +1 -1
- data/app/models/delayed_job.rb +3 -0
- data/app/models/form.rb +16 -4
- data/app/models/html_asset.rb +19 -4
- data/app/models/html_asset_usage.rb +3 -0
- data/app/models/html_assetable.rb +4 -0
- data/app/models/layout.rb +36 -6
- data/app/models/newsletter.rb +1 -1
- data/app/models/page.rb +36 -2
- data/app/models/page_link.rb +5 -0
- data/app/models/page_template.rb +22 -2
- data/app/models/preference.rb +1 -1
- data/app/models/q_event.rb +12 -0
- data/app/models/q_klass.rb +5 -0
- data/app/models/q_message.rb +9 -0
- data/app/models/q_publisher.rb +35 -0
- data/app/models/q_subscription.rb +7 -0
- data/app/models/q_user.rb +29 -0
- data/app/models/q_users_method.rb +6 -0
- data/app/models/q_users_publisher.rb +6 -0
- data/app/models/user.rb +127 -19
- data/app/models/user_login.rb +4 -0
- data/app/validators/email_validator.rb +14 -0
- data/app/views/account/_edit.html.haml +40 -0
- data/app/views/account/_edit_intro.html.haml +3 -0
- data/app/views/account/_forgotten.html.haml +20 -0
- data/app/views/account/_forgotten_intro.html.haml +5 -0
- data/app/views/account/_sign_in.html.haml +31 -0
- data/app/views/account/_sign_in_intro.html.haml +4 -0
- data/app/views/account/_sign_up.html.haml +51 -0
- data/app/views/account/_sign_up_intro.html.haml +4 -0
- data/app/views/account/edit.html.haml +1 -0
- data/app/views/account/forgotten.html.haml +1 -0
- data/app/views/account/sign_in.html.haml +2 -0
- data/app/views/account/sign_up.html.haml +1 -0
- data/app/views/ad/_buy.html.haml +2 -1
- data/app/views/admin/ad_zones/_form.html.haml +1 -1
- data/app/views/admin/ad_zones/show.html.haml +2 -0
- data/app/views/admin/blocks/_form.html.haml +11 -1
- data/app/views/admin/dashboard/broken_links.html.haml +9 -0
- data/app/views/admin/dashboard/system.html.haml +11 -0
- data/app/views/admin/dj/index.html.haml +43 -0
- data/app/views/admin/form/_form.html.haml +15 -10
- data/app/views/admin/group/index.html.haml +1 -1
- data/app/views/admin/help/edit.html.haml +1 -1
- data/app/views/admin/html_asset/show.html.haml +9 -2
- data/app/views/admin/layouts/show.html.haml +10 -16
- data/app/views/admin/page_templates/_form.html.haml +9 -17
- data/app/views/admin/page_templates/show.html.haml +5 -4
- data/app/views/admin/q/events.html.haml +26 -0
- data/app/views/admin/q/index.html.haml +28 -0
- data/app/views/admin/q/klasses.html.haml +61 -0
- data/app/views/admin/q/messages.html.haml +37 -0
- data/app/views/admin/q/show.html.haml +98 -0
- data/app/views/admin/q/subscriptions.html.haml +26 -0
- data/app/views/admin/q/users.html.haml +27 -0
- data/app/views/admin/snippet/edit.html.erb +1 -1
- data/app/views/admin/snippet/new.html.erb +1 -1
- data/app/views/admin/stylesheet/show.html.haml +1 -1
- data/app/views/admin/user/index.html.erb +15 -6
- data/app/views/admin/user/view.html.erb +5 -4
- data/app/views/admin/views/_form.html.haml +3 -3
- data/app/views/calendar/_buy_tickets.html.haml +1 -1
- data/app/views/calendar/_calendar_entry.html.haml +1 -1
- data/app/views/calendar/_month.html.haml +7 -7
- data/app/views/form/_show.html.haml +1 -1
- data/app/views/forum/_add_post.html.haml +7 -8
- data/app/views/forum/_mod_thread.js.erb +46 -6
- data/app/views/forum/_post_moderation.html.haml +2 -1
- data/app/views/forum/_post_preview.html.haml +1 -9
- data/app/views/forum/_post_scripts.js.erb +29 -5
- data/app/views/forum/fetch_raw.html.haml +1 -0
- data/app/views/forum/moderate.html.haml +1 -0
- data/app/views/forum/topic_index.html.haml +4 -0
- data/app/views/notification/{event.txt.erb → event.text.erb} +0 -0
- data/app/views/notification/forgotten_password.text.erb +2 -0
- data/app/views/pages/content_edit.html.haml +1 -1
- data/app/views/pages/info.html.erb +13 -2
- data/app/views/pages/links.html.haml +63 -0
- data/app/views/user/edit_profile.html.haml +1 -1
- data/app/views/utility/_cm_editor.html.erb +13 -10
- data/app/views/utility/_cm_toolbar_markdown.html.haml +8 -1
- data/app/views/utility/_menu.html.haml +4 -0
- data/app/views/utility/mercury_html.html.haml +1 -0
- data/config/initializers/elastic_search.rb +6 -3
- data/config/initializers/extend_controller.rb +3 -0
- data/config/initializers/string.rb +9 -6
- data/config/initializers/warden.rb +49 -0
- data/config/locales/en.yml +29 -1
- data/config/routes.rb +35 -2
- data/lib/kit_cms.rb +7 -2
- data/lib/tasks/kit.rake +90 -2
- metadata +139 -27
- data/app/controllers/user/confirmations_controller.rb +0 -11
- data/app/controllers/user/passwords_controller.rb +0 -13
- data/app/controllers/user/registrations_controller.rb +0 -110
- data/app/controllers/user/sessions_controller.rb +0 -33
- data/app/controllers/user/unlocks_controller.rb +0 -13
- data/app/views/devise/_links.erb +0 -25
- data/app/views/devise/confirmations/new.html.erb +0 -12
- data/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
- data/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
- data/app/views/devise/mailer/unlock_instructions.html.erb +0 -7
- data/app/views/devise/passwords/edit.html.erb +0 -16
- data/app/views/devise/passwords/new.html.erb +0 -12
- data/app/views/devise/registrations/edit.html.erb +0 -28
- data/app/views/devise/registrations/new.html.erb +0 -18
- data/app/views/devise/sessions/new.html.erb +0 -18
- data/app/views/devise/shared/_links.erb +0 -25
- data/app/views/devise/unlocks/new.html.erb +0 -12
- data/app/views/pages/links.html.erb +0 -8
- data/app/views/user/shared/_links.erb +0 -25
- data/config/initializers/devise.rb +0 -196
- data/config/initializers/devise_extender.rb +0 -39
@@ -50,9 +50,16 @@
|
|
50
50
|
|
51
51
|
.cm-s-neat {
|
52
52
|
font-family: Arial, "sans serif";
|
53
|
+
}
|
54
|
+
|
55
|
+
.cm-s-neat .CodeMirror-cursor { border-left: 1px solid #111 !important;}
|
53
56
|
|
57
|
+
div.CodeMirror {
|
58
|
+
border: thin #AAA solid;
|
59
|
+
background-color: white;
|
54
60
|
}
|
55
61
|
|
62
|
+
|
56
63
|
.cm-s-neat span.cm-strong { font-weight: bold; }
|
57
64
|
.cm-s-neat span.cm-em { text-decoration: underline; }
|
58
65
|
.cm-s-neat span.cm-comment { color: #a86; }
|
@@ -65,13 +72,16 @@
|
|
65
72
|
.cm-s-neat span.cm-meta {color: #555;}
|
66
73
|
.cm-s-neat span.cm-link { color: #3a3; }
|
67
74
|
|
75
|
+
.cm-s-blackboard-cms .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }
|
76
|
+
|
77
|
+
|
68
78
|
|
69
79
|
.toolbar ul {
|
70
80
|
list-style-type: none;
|
71
81
|
margin: 0;
|
72
82
|
padding: 5px 5px 0 5px;
|
73
83
|
background-color: #CCC;
|
74
|
-
width:
|
84
|
+
width: 788px;
|
75
85
|
height: 36px;
|
76
86
|
|
77
87
|
}
|
@@ -106,20 +116,30 @@
|
|
106
116
|
}
|
107
117
|
|
108
118
|
.toolbar ul li.spacer {
|
109
|
-
margin-right:
|
119
|
+
margin-right: 10px;
|
110
120
|
}
|
111
121
|
|
112
122
|
.toolbar ul li img {
|
113
123
|
opacity: 0.6;
|
114
124
|
}
|
115
125
|
|
126
|
+
.toolbar ul li.smile img, .toolbar ul li.wink img {
|
127
|
+
opacity: 1.0 ;
|
128
|
+
}
|
129
|
+
|
130
|
+
|
116
131
|
.toolbar ul li label {
|
117
132
|
position: absolute;
|
118
133
|
width: 46px;
|
119
134
|
text-align: center;
|
120
|
-
|
135
|
+
top: 12px;
|
121
136
|
}
|
122
137
|
|
123
138
|
.toolbar .list img, .toolbar .numbered_list img {
|
124
139
|
margin-top: 2px;
|
125
140
|
}
|
141
|
+
|
142
|
+
|
143
|
+
div#forums div#popup_form div.toolbar ul.markdown li {
|
144
|
+
margin-left: 0;
|
145
|
+
}
|
@@ -149,7 +149,6 @@ div#calendar table {
|
|
149
149
|
margin: 0;
|
150
150
|
border-collapse: collapse;
|
151
151
|
border: 2px black solid !important;
|
152
|
-
overflow: hidden;
|
153
152
|
}
|
154
153
|
|
155
154
|
div#calendar th, div#calendar td {
|
@@ -184,6 +183,12 @@ div#calendar table.full td, div#calendar table.full th {
|
|
184
183
|
padding: 5px;
|
185
184
|
}
|
186
185
|
|
186
|
+
div#calendar table.full div.day_entry {
|
187
|
+
height: 16px;
|
188
|
+
width: 74px;
|
189
|
+
overflow: hidden;
|
190
|
+
}
|
191
|
+
|
187
192
|
div#calendar table td.pad {
|
188
193
|
background-color: #DDD;
|
189
194
|
}
|
@@ -1142,9 +1142,15 @@ a.icon:hover, a.no_icon:hover {
|
|
1142
1142
|
|
1143
1143
|
h1.order_icon {
|
1144
1144
|
background-image: url('/assets/kit/icons/32/cur_bp_icon&32.png');
|
1145
|
+
}
|
1145
1146
|
|
1147
|
+
h1.notificationqueue_icon {
|
1148
|
+
background-image: url('/assets/kit/icons/32/twitter_2_icon&32.png');
|
1146
1149
|
}
|
1147
1150
|
|
1151
|
+
a.notificationqueue_wicon {
|
1152
|
+
background-image: url('/assets/kit/icons/white/16/twitter_2_icon&16.png');
|
1153
|
+
}
|
1148
1154
|
h1.experiments_icon {
|
1149
1155
|
background-image: url('/assets/kit/icons/32/balance_icon&32.png');
|
1150
1156
|
}
|
@@ -1675,3 +1681,33 @@ ul#mapping li label {
|
|
1675
1681
|
float: left;
|
1676
1682
|
width: 300px;
|
1677
1683
|
}
|
1684
|
+
|
1685
|
+
ul.link_list div.http_404 a {
|
1686
|
+
color: red;
|
1687
|
+
}
|
1688
|
+
|
1689
|
+
ul.link_list div.left {
|
1690
|
+
float: left;
|
1691
|
+
width: 300px;
|
1692
|
+
}
|
1693
|
+
|
1694
|
+
.auth label {
|
1695
|
+
font-weight: bold;
|
1696
|
+
float: left;
|
1697
|
+
width: 210px;
|
1698
|
+
}
|
1699
|
+
|
1700
|
+
.auth form label, .klass form label {
|
1701
|
+
float: none;
|
1702
|
+
display: block;
|
1703
|
+
}
|
1704
|
+
.auth form input, .klass form input[type=text] {
|
1705
|
+
width: 600px;
|
1706
|
+
}
|
1707
|
+
|
1708
|
+
.auth form textarea, .klass form textarea {
|
1709
|
+
width: 600px;
|
1710
|
+
height: 300px;
|
1711
|
+
}
|
1712
|
+
|
1713
|
+
|
@@ -0,0 +1,306 @@
|
|
1
|
+
require 'digest/md5'
|
2
|
+
|
3
|
+
class AccountController < KitController
|
4
|
+
|
5
|
+
before_filter :redirect_current, :only=>[:sign_in, :sign_up, :forgotten]
|
6
|
+
|
7
|
+
def edit
|
8
|
+
redirect_to sign_in_url unless current_user
|
9
|
+
|
10
|
+
if request.post?
|
11
|
+
user.email = params[:email] unless params[:must_change_password]
|
12
|
+
if params[:must_change_password] || params[:password].not_blank? || params[:password_confirmation].not_blank?
|
13
|
+
user.skip_password = false
|
14
|
+
user.password = params[:password]
|
15
|
+
user.password_confirmation = params[:password_confirmation]
|
16
|
+
else
|
17
|
+
user.skip_password = true
|
18
|
+
end
|
19
|
+
if user.save
|
20
|
+
redirect_after_signin(:edit)
|
21
|
+
return
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
render_action "edit"
|
26
|
+
end
|
27
|
+
|
28
|
+
def forgotten
|
29
|
+
if request.post? && (params[:email].not_blank? || (params[:user] && params[:user][:email].not_blank?))
|
30
|
+
u = User.sys(_sid).where(:email=>(params[:email] || params[:user][:email])).first
|
31
|
+
if u
|
32
|
+
u.skip_password = true
|
33
|
+
u.reset_password_token = Digest::MD5.hexdigest(u.email + Time.now.to_s + rand(100000).to_s)
|
34
|
+
u.reset_password_sent_at = Time.now
|
35
|
+
u.save!
|
36
|
+
Notification.forgotten_password(u.id).deliver
|
37
|
+
Activity.add(_sid, "Sent password reset to user <a href='/admin/user/#{u.id}'>#{u.email}</a>", nil, "Users")
|
38
|
+
end
|
39
|
+
redirect_to sign_in_url, :notice=>t("account.reset_sent")
|
40
|
+
return
|
41
|
+
end
|
42
|
+
|
43
|
+
render_action("forgotten")
|
44
|
+
end
|
45
|
+
|
46
|
+
def reset
|
47
|
+
code = params[:code]
|
48
|
+
|
49
|
+
u = User.sys(_sid).where(:reset_password_token=>params[:code]).where("reset_password_sent_at >= date_sub(now(), interval 24 hour)").where("reset_password_token is not null").first
|
50
|
+
|
51
|
+
if u
|
52
|
+
warden.set_user u
|
53
|
+
u.skip_password = true
|
54
|
+
u.record_signin(_sid, request)
|
55
|
+
u.reset_password_token = nil
|
56
|
+
u.save
|
57
|
+
render_action("edit", {:notice=>t("account.change_your_password"), :dont_show_intro=>true, :dont_show_leave_blank_passwords=>true, :must_change_password=>true})
|
58
|
+
else
|
59
|
+
render_action("forgotten", :notice=>t("account.reset_failed"))
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def unauthenticated
|
64
|
+
store_sign_in_redirect
|
65
|
+
|
66
|
+
if params[(Preference.get_cached(_sid, "account_token_param") || 'token').to_sym]
|
67
|
+
authenticate
|
68
|
+
if current_user
|
69
|
+
current_user.record_signin(_sid, request)
|
70
|
+
redirect_after_signin(:token)
|
71
|
+
else
|
72
|
+
redirect_after_signin(:token, true)
|
73
|
+
end
|
74
|
+
return
|
75
|
+
end
|
76
|
+
|
77
|
+
redirect_to_signin
|
78
|
+
end
|
79
|
+
|
80
|
+
def sign_up
|
81
|
+
new_user = nil
|
82
|
+
|
83
|
+
if request.post?
|
84
|
+
new_user = User.new
|
85
|
+
new_user.skip_password = false
|
86
|
+
new_user.email = params[:email] || params[:user][:email]
|
87
|
+
new_user.password = params[:password] || params[:user][:password]
|
88
|
+
new_user.password_confirmation = params[:password_confirmation] || params[:user][:password_confirmation]
|
89
|
+
new_user.display_name = params[:display_name]
|
90
|
+
new_user.system_id = _sid
|
91
|
+
new_user.sign_up_ip = request.remote_ip
|
92
|
+
|
93
|
+
if new_user.save
|
94
|
+
process_new_user(new_user)
|
95
|
+
warden.set_user new_user
|
96
|
+
new_user.record_signin(_sid, request)
|
97
|
+
redirect_after_signup
|
98
|
+
return
|
99
|
+
end
|
100
|
+
end
|
101
|
+
@user = new_user
|
102
|
+
render_action("sign_up")
|
103
|
+
end
|
104
|
+
|
105
|
+
def sign_in
|
106
|
+
if request.post?
|
107
|
+
authenticate
|
108
|
+
if current_user
|
109
|
+
current_user.record_signin(_sid, request)
|
110
|
+
if params[:remember_me]
|
111
|
+
remember_for = (Preference.get_cached(_sid, "account_remember_for_days") || "90").to_i
|
112
|
+
cookies[:sign_in] = { :value=> current_user.remember_token, :expires=> remember_for.days.from_now }
|
113
|
+
end
|
114
|
+
if params[:return_to]
|
115
|
+
redirect_to params[:return_to]
|
116
|
+
elsif url = pref("url_after_sign_in")
|
117
|
+
redirect_to url
|
118
|
+
else
|
119
|
+
redirect_after_signin(:email)
|
120
|
+
end
|
121
|
+
return
|
122
|
+
else
|
123
|
+
u = User.record_failed_signin(_sid, request)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
render_action("sign_in")
|
128
|
+
end
|
129
|
+
|
130
|
+
def sign_out
|
131
|
+
if current_user
|
132
|
+
if current_user.respond_to?(:last_sign_out)
|
133
|
+
current_user.update_attributes(:last_sign_out=>Time.now)
|
134
|
+
end
|
135
|
+
current_user.dont_remember
|
136
|
+
warden.logout
|
137
|
+
|
138
|
+
end
|
139
|
+
|
140
|
+
redirect_to params[:url] || pref("url_after_sign_out") || "/"
|
141
|
+
end
|
142
|
+
|
143
|
+
protected
|
144
|
+
def process_new_user(u)
|
145
|
+
attributes = UserAttribute.sys(_sid).where(:show_on_signup=>1).all
|
146
|
+
|
147
|
+
attributes.each do |attr|
|
148
|
+
if params[attr.code_name]
|
149
|
+
uav = UserAttributeValue.new
|
150
|
+
uav.user_attribute_id = attr.id
|
151
|
+
uav.user_id = u.id
|
152
|
+
uav.value = params[attr.code_name]
|
153
|
+
uav.updated_by = u.id
|
154
|
+
uav.system_id = _sid
|
155
|
+
uav.save
|
156
|
+
end
|
157
|
+
end if attributes
|
158
|
+
|
159
|
+
if params[:groups]
|
160
|
+
params[:groups].split(',').each do |gg|
|
161
|
+
group = Group.find_sys_id(_sid, gg)
|
162
|
+
user.groups << group
|
163
|
+
end
|
164
|
+
end
|
165
|
+
u.update_index
|
166
|
+
end
|
167
|
+
|
168
|
+
def redirect_after_signup
|
169
|
+
url = url_after_signup
|
170
|
+
|
171
|
+
redirect_to url, :notice=>view_context.t("You have successfully signed up")
|
172
|
+
end
|
173
|
+
|
174
|
+
def redirect_after_signin(mode, failed = false)
|
175
|
+
if mode==:token
|
176
|
+
if failed
|
177
|
+
redirect_after_signin_token_failed
|
178
|
+
else
|
179
|
+
redirect_after_signin_token
|
180
|
+
end
|
181
|
+
elsif mode==:email || mode==:edit
|
182
|
+
if failed
|
183
|
+
redirect_after_signin_email_failed
|
184
|
+
else
|
185
|
+
redirect_after_signin_email(mode == :edit)
|
186
|
+
end
|
187
|
+
else
|
188
|
+
redirect_to "/", :notice=>view_context.t("You have signed in")
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
def redirect_after_signin_token
|
193
|
+
redirect_to url_after_signin, :notice=>view_context.t("you_have_signed_in")
|
194
|
+
end
|
195
|
+
|
196
|
+
def redirect_after_signin_token_failed
|
197
|
+
redirect_to "/", :notice=>view_context.t("your_signin_failed")
|
198
|
+
end
|
199
|
+
|
200
|
+
def redirect_after_signin_email(show_notice)
|
201
|
+
if show_notice
|
202
|
+
redirect_to url_after_signin, :notice=>view_context.t("you_have_signed_in")
|
203
|
+
else
|
204
|
+
redirect_to url_after_signin
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
def redirect_after_signin_email_failed
|
209
|
+
redirect_to "/users/sign_in", :notice=>view_context.t("your_signin_failed")
|
210
|
+
end
|
211
|
+
|
212
|
+
def url_after_signup
|
213
|
+
path = session[:return_to] || url_after_group(:signup) || url_after_group(:signin) || '/'
|
214
|
+
session[:return_to] = nil
|
215
|
+
return path.to_s
|
216
|
+
end
|
217
|
+
|
218
|
+
def url_after_signin
|
219
|
+
path = session[:return_to] || url_after_group(:signin) || "/"
|
220
|
+
session[:return_to] = nil
|
221
|
+
return path.to_s
|
222
|
+
end
|
223
|
+
|
224
|
+
def url_after_group(mode)
|
225
|
+
Preference.sys(_sid).where("name like 'account_after_#{mode}_%'").all.each do |pref|
|
226
|
+
pref.name =~ /^account_after_#{mode}_(.*)$/
|
227
|
+
if user.groups.where(:name=>$1).count>0
|
228
|
+
return pref.value
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
return nil
|
233
|
+
end
|
234
|
+
|
235
|
+
def redirect_to_signin
|
236
|
+
redirect_to sign_in_url
|
237
|
+
end
|
238
|
+
|
239
|
+
def store_sign_up_redirect
|
240
|
+
if params[:return_to]
|
241
|
+
session[:return_to] = params[:return_to]
|
242
|
+
elsif url = pref("url_after_sign_up")
|
243
|
+
session[:return_to] ||= url
|
244
|
+
end
|
245
|
+
session[:return_to] = nil if session[:return_to] == sign_up_url
|
246
|
+
end
|
247
|
+
|
248
|
+
def store_sign_in_redirect
|
249
|
+
if params[:return_to]
|
250
|
+
session[:return_to] = params[:return_to]
|
251
|
+
elsif url = pref("url_after_sign_in")
|
252
|
+
session[:return_to] ||= url
|
253
|
+
else
|
254
|
+
session[:return_to] ||= env['warden.options'][:attempted_path]
|
255
|
+
end
|
256
|
+
|
257
|
+
session[:return_to] = nil if session[:return_to] == sign_in_url
|
258
|
+
end
|
259
|
+
|
260
|
+
def render_action(name, options = {})
|
261
|
+
flash[:notice] = options[:notice] if options[:notice]
|
262
|
+
flash[:error] = options[:error] if options[:error]
|
263
|
+
|
264
|
+
if params[:custom]
|
265
|
+
@page = Pagebase.sys(_sid).where(:full_path=>URI(request.referer).path).first
|
266
|
+
if @page
|
267
|
+
render_page(@page)
|
268
|
+
return
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
if page_id = pref("account_#{name}_pageid") && @page = Pagebase.sys(_sid).where(:id=>page_id.to_i).first
|
273
|
+
if @page
|
274
|
+
render_page(@page)
|
275
|
+
return
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
layout = Layout.preference(_sid, "account_#{name}_layout")
|
280
|
+
options[:layout] = layout.path
|
281
|
+
self.layout_being_used = layout
|
282
|
+
@options = options
|
283
|
+
render name, options
|
284
|
+
end
|
285
|
+
|
286
|
+
def sign_in_url
|
287
|
+
view_context.sign_in_url
|
288
|
+
end
|
289
|
+
|
290
|
+
def sign_up_url
|
291
|
+
view_context.sign_up_url
|
292
|
+
end
|
293
|
+
|
294
|
+
def sign_out_url
|
295
|
+
view_context.sign_out_url
|
296
|
+
end
|
297
|
+
|
298
|
+
def redirect_current
|
299
|
+
if current_user
|
300
|
+
redirect_to "/"
|
301
|
+
return false
|
302
|
+
else
|
303
|
+
return true
|
304
|
+
end
|
305
|
+
end
|
306
|
+
end
|