kit_cms 2.3.20 → 2.3.22
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.
- 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
|