hotspotlogin 1.4.3 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +4 -0
- data/README.rdoc +3 -1
- data/examples/hotspotlogin.conf.yaml +2 -0
- data/i18n/en.yml +5 -0
- data/i18n/it.yml +6 -0
- data/lib/hotspotlogin/app.rb +21 -21
- data/lib/hotspotlogin/app/helpers.rb +17 -0
- data/lib/hotspotlogin/config.rb +4 -0
- data/lib/hotspotlogin/constants.rb +1 -1
- data/public/hotspotlogin/css/default.css +3 -6
- data/views/_login_form.erb +13 -9
- data/views/hotspotlogin.erb +3 -2
- metadata +2 -2
data/Changelog
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
* 1.5.0 (2013-10-02)
|
2
|
+
* --password-recovery-url <URL>: (e.g.
|
3
|
+
https://accounts.mysite.com/password-recovery.html)
|
4
|
+
|
1
5
|
* 1.4.3 (2013-09-26)
|
2
6
|
* cookie-based credentials persistance can be disallowed (but it is
|
3
7
|
enabled by default): --[no-]-remember-credentials option
|
data/README.rdoc
CHANGED
@@ -59,7 +59,9 @@ All this options may be put into the YAML config file specified by --conf
|
|
59
59
|
|
60
60
|
--my-url <URL> "My Account" link, where -USER- will be replaced by
|
61
61
|
the actual username, e.g.
|
62
|
-
http://accounts.mysite.com/?id=-USER-
|
62
|
+
http://accounts.mysite.com/?id=-USER-
|
63
|
+
|
64
|
+
--password-recovery-url <URL> e.g. http://accounts.mysite.com/password-recovery.html
|
63
65
|
|
64
66
|
--[no-]remember-credentials give users the possibility to store their credentials
|
65
67
|
within a cookie in their own computer and avoid typing
|
@@ -13,3 +13,5 @@ logo: /some/path/to/mylogo.png
|
|
13
13
|
logo-link: http://myorg.com
|
14
14
|
my-url: http://accounts.myorg.com/?id=-USER- # -USER- will be dinamically replaced by real username
|
15
15
|
favicon: /path/to/favicon.ico
|
16
|
+
remember-credentials: false
|
17
|
+
password-recovery-url: http://accounts.myorg.com/password-recovery.html
|
data/i18n/en.yml
CHANGED
data/i18n/it.yml
CHANGED
data/lib/hotspotlogin/app.rb
CHANGED
@@ -221,27 +221,27 @@ module HotSpotLogin
|
|
221
221
|
erb(
|
222
222
|
:hotspotlogin,
|
223
223
|
:locals => {
|
224
|
-
:titel
|
225
|
-
:headline
|
226
|
-
:bodytext
|
227
|
-
:uamip
|
228
|
-
:uamport
|
229
|
-
:userurl
|
230
|
-
#:redirurl
|
231
|
-
:redirurl
|
232
|
-
:timeleft
|
233
|
-
:interval
|
234
|
-
:signup_url
|
235
|
-
:my_url
|
236
|
-
:
|
237
|
-
:
|
238
|
-
|
239
|
-
:custom_text
|
240
|
-
:custom_footer
|
241
|
-
:logoext
|
242
|
-
:logo_link
|
243
|
-
:result
|
244
|
-
:reply
|
224
|
+
:titel => titel,
|
225
|
+
:headline => headline, # like 'Logged out from HotSpot'
|
226
|
+
:bodytext => bodytext,
|
227
|
+
:uamip => params['uamip'],
|
228
|
+
:uamport => params['uamport'],
|
229
|
+
:userurl => params['userurl'],
|
230
|
+
#:redirurl => params['redirurl'],
|
231
|
+
:redirurl => params['userurl'],
|
232
|
+
:timeleft => params['timeleft'], # legacy...
|
233
|
+
:interval => HotSpotLogin.config['interval'],
|
234
|
+
:signup_url => HotSpotLogin.config['signup-url'],
|
235
|
+
:my_url => HotSpotLogin.config['my-url'],
|
236
|
+
:password_recovery_url => HotSpotLogin.config['password-recovery-url'],
|
237
|
+
:remember_credentials => HotSpotLogin.config['remember-credentials'],
|
238
|
+
:custom_headline => HotSpotLogin.config['custom-headline'], # like "MyOrg Name"
|
239
|
+
:custom_text => HotSpotLogin.config['custom-text'],
|
240
|
+
:custom_footer => HotSpotLogin.config['custom-footer'],
|
241
|
+
:logoext => logoext,
|
242
|
+
:logo_link => HotSpotLogin.config['logo-link'],
|
243
|
+
:result => result,
|
244
|
+
:reply => params['reply'] # Reply-Message
|
245
245
|
}
|
246
246
|
)
|
247
247
|
|
@@ -4,6 +4,7 @@ require 'hotspotlogin/constants'
|
|
4
4
|
module HotSpotLogin
|
5
5
|
class App < Sinatra::Base
|
6
6
|
helpers do
|
7
|
+
|
7
8
|
def logged_in?(result)
|
8
9
|
[
|
9
10
|
HotSpotLogin::Result::ALREADY,
|
@@ -12,6 +13,22 @@ module HotSpotLogin
|
|
12
13
|
].include? result
|
13
14
|
end
|
14
15
|
alias status_window? logged_in?
|
16
|
+
|
17
|
+
# Borrowed from / based on
|
18
|
+
# https://github.com/gderosa/onboard/blob/8a1d331ca514cd22997a8f459c0f91d64f24158b/lib/onboard/controller/helpers/user-agent.rb#L6
|
19
|
+
#
|
20
|
+
# TODO: create a common gem? 8-)
|
21
|
+
#
|
22
|
+
# Thanks to http://detectmobilebrowsers.com
|
23
|
+
# Specifically, based on http://detectmobilebrowsers.com/download/rails
|
24
|
+
#
|
25
|
+
def mobile?
|
26
|
+
return true if params['mobile'] =~ /yes|on|true|1/
|
27
|
+
return true if instance_variable_get :@mobile # may be not defined yet
|
28
|
+
return @mobile = /android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.match(request.user_agent) ||
|
29
|
+
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.match(request.user_agent[0..3])
|
30
|
+
end
|
31
|
+
|
15
32
|
end
|
16
33
|
end
|
17
34
|
end
|
data/lib/hotspotlogin/config.rb
CHANGED
@@ -60,6 +60,10 @@ module HotSpotLogin
|
|
60
60
|
@@config['signup-url'] = url
|
61
61
|
end
|
62
62
|
|
63
|
+
opts.on('--password-recovery-url URL', 'display an external link where end-user may recover/reset her password') do |url|
|
64
|
+
@@config['password-recovery-url'] = url
|
65
|
+
end
|
66
|
+
|
63
67
|
opts.on('--[no-]remember-credentials', 'allow users to save username/password in cookies') do |rcred|
|
64
68
|
@@config['remember-credentials'] = rcred
|
65
69
|
end
|
@@ -99,23 +99,20 @@ h2#headline {
|
|
99
99
|
background: white;
|
100
100
|
} */
|
101
101
|
|
102
|
-
#signup-container{
|
102
|
+
#signup-container, #password-recovery-container {
|
103
103
|
font-style:italic;
|
104
104
|
font-weight: normal;
|
105
|
-
margin-top:0.2em;
|
106
105
|
}
|
107
106
|
|
108
|
-
a#signup
|
107
|
+
a#signup {
|
109
108
|
border: none;
|
110
109
|
color: white;
|
111
110
|
background: #77f;
|
112
111
|
padding: 0.2em 0.2em 0.1em 0.2em;
|
113
112
|
font-style:normal;
|
114
|
-
}
|
115
|
-
|
116
|
-
a#signup {
|
117
113
|
text-decoration: none;
|
118
114
|
margin-left: 0.2em;
|
115
|
+
line-height: 2.4em;
|
119
116
|
font-size: 130%;
|
120
117
|
}
|
121
118
|
|
data/views/_login_form.erb
CHANGED
@@ -33,13 +33,17 @@
|
|
33
33
|
</table>
|
34
34
|
</form>
|
35
35
|
<div style="height:1ex;"> <!-- separator --> </div>
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
36
|
+
|
37
|
+
<% if signup_url =~ /\S/ %>
|
38
|
+
<span id="signup-container">
|
39
|
+
<%= t.account.dont_have.you.capitalize %>?
|
40
|
+
<a <%= 'target="_blank"' unless mobile? %> id="signup" href="<%= signup_url %>?redirect=<%= Rack::Utils.escape params['userurl'] %>"><%= t.signup.you!.capitalize %></a>
|
41
|
+
</span>
|
42
|
+
<% end %>
|
43
|
+
<% if password_recovery_url =~ /\S/ %>
|
44
|
+
<div id="password-recovery-container">
|
45
|
+
<%= t.password.forgot.capitalize %>?
|
46
|
+
<a id="password-recovery" href="<%= password_recovery_url %>?redirect=<%= Rack::Utils.escape params['userurl'] %>"><%= t.password.recovery.you!.capitalize.gsub(/\s/, ' ') %></a>
|
47
|
+
</div>
|
48
|
+
<% end %>
|
45
49
|
|
data/views/hotspotlogin.erb
CHANGED
@@ -53,8 +53,9 @@
|
|
53
53
|
:_login_form,
|
54
54
|
:layout => false,
|
55
55
|
:locals => {
|
56
|
-
:signup_url
|
57
|
-
:remember_credentials
|
56
|
+
:signup_url => signup_url,
|
57
|
+
:remember_credentials => remember_credentials,
|
58
|
+
:password_recovery_url => password_recovery_url
|
58
59
|
}
|
59
60
|
)
|
60
61
|
%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hotspotlogin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-10-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: facets
|