contour 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +13 -0
- data/README.rdoc +103 -0
- data/app/views/contour/authentications/_index.html.erb +1 -1
- data/app/views/contour/authentications/_menu.html.erb +7 -6
- data/app/views/contour/authentications/index.html.erb +1 -1
- data/app/views/contour/layouts/application.html.erb +3 -2
- data/app/views/contour/passwords/new.html.erb +1 -1
- data/app/views/contour/registrations/new.html.erb +14 -10
- data/app/views/contour/samples/index.html.erb +5 -0
- data/app/views/contour/sessions/new.html.erb +1 -1
- data/lib/contour.rb +8 -7
- data/lib/contour/engine.rb +1 -0
- data/lib/contour/engine/routes.rb +10 -0
- data/lib/contour/fixes.rb +9 -0
- data/lib/contour/fixes/devise.rb +12 -0
- data/lib/{generators/templates/omniauth_fix.rb → contour/fixes/omniauth.rb} +13 -5
- data/lib/{generators/templates/rack_fix.rb → contour/fixes/rack.rb} +2 -0
- data/lib/contour/version.rb +1 -1
- data/lib/generators/contour/install_generator.rb +28 -8
- data/lib/generators/templates/README +28 -0
- data/lib/generators/templates/contour.rb +3 -6
- metadata +12 -8
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
== 0.5.0
|
2
|
+
|
3
|
+
* Enhancements
|
4
|
+
* rails generate contour:install now appends routes
|
5
|
+
* Authentication icons can be overridden in the application if the application has a contour folder in the assets directory
|
6
|
+
* ex: if the web app contains a special logo for LDAP authentication, the app/assets/images/contour folder would contain specialized ldap_64.png and ldap_32.png where 64 and 32 represent the height
|
7
|
+
* Removing reliance on Contour.application_site_url and using request.script_name instead
|
8
|
+
* Contour now handles fixes to other libraries in the background, no longer needs to add omniauth_fix.rb and rack_fix.rb to the config/initializers folder
|
9
|
+
|
10
|
+
* Bug Fix
|
11
|
+
* Removed registration page requirement for first_name and last_name
|
12
|
+
* Incorrect redirect on LDAP authentication failure for Rails apps on subdomains fixed
|
13
|
+
|
1
14
|
== 0.4.0
|
2
15
|
|
3
16
|
* Enhancements
|
data/README.rdoc
CHANGED
@@ -40,6 +40,109 @@ In order to get registration working, you can use the modified Contour Authentic
|
|
40
40
|
|
41
41
|
devise_for :users, :controllers => {:registrations => 'contour/registrations', :sessions => 'contour/sessions', :passwords => 'contour/passwords'}, :path_names => { :sign_up => 'register', :sign_in => 'login' }
|
42
42
|
|
43
|
+
== Setting up a new project with quick authentication
|
44
|
+
|
45
|
+
Make sure you have Rails 3.1.0
|
46
|
+
|
47
|
+
rails -v
|
48
|
+
|
49
|
+
rails new blank_rails_project
|
50
|
+
|
51
|
+
cd blank_rails_project
|
52
|
+
|
53
|
+
Modify Gemfile and add
|
54
|
+
|
55
|
+
gem 'contour', '~> 0.5.0' # Basic Layout and Assets
|
56
|
+
gem 'devise', '~> 1.4.4' # User Authorization
|
57
|
+
gem 'omniauth', '0.2.6' # User Multi-Authentication
|
58
|
+
|
59
|
+
Run Bundle install
|
60
|
+
|
61
|
+
bundle install
|
62
|
+
|
63
|
+
Install contour files
|
64
|
+
|
65
|
+
rails generate contour:install
|
66
|
+
|
67
|
+
Add the following line to your app/controllers/application_controller.rb
|
68
|
+
|
69
|
+
layout "contour/layouts/application"
|
70
|
+
|
71
|
+
Edit your app/assets/javascripts/application.js manifest to use Contour JavaScript (Replace jquery and jquery_ujs)
|
72
|
+
|
73
|
+
//= require contour
|
74
|
+
|
75
|
+
Edit your app/assets/stylesheets/application.css manifest to use Contour CSS (after self, before tree)
|
76
|
+
|
77
|
+
*= require contour
|
78
|
+
|
79
|
+
Remove any scaffold.css files that exist in your application
|
80
|
+
|
81
|
+
Add the authentication model
|
82
|
+
|
83
|
+
rails generate model Authentication user_id:integer provider:string uid:string
|
84
|
+
|
85
|
+
Add first_name and last_name to user model
|
86
|
+
|
87
|
+
rails generate migration AddFirstNameAndLastNameToUsers first_name:string last_name:string
|
88
|
+
|
89
|
+
Migrate your database
|
90
|
+
|
91
|
+
bundle exec rake db:create
|
92
|
+
|
93
|
+
bundle exec rake db:migrate
|
94
|
+
|
95
|
+
Remove the public/index.html
|
96
|
+
|
97
|
+
rm public/index.html
|
98
|
+
|
99
|
+
Create a sample controller
|
100
|
+
|
101
|
+
rails generate controller welcome index
|
102
|
+
|
103
|
+
Create a root in your config/routes.rb
|
104
|
+
|
105
|
+
root :to => 'welcome#index'
|
106
|
+
|
107
|
+
Add the following to your app/models/user.rb
|
108
|
+
|
109
|
+
attr_accessible :first_name, :last_name
|
110
|
+
|
111
|
+
# Model Validation
|
112
|
+
validates_presence_of :first_name
|
113
|
+
validates_presence_of :last_name
|
114
|
+
|
115
|
+
# Model Relationships
|
116
|
+
has_many :authentications
|
117
|
+
|
118
|
+
def name
|
119
|
+
"#{first_name} #{last_name}"
|
120
|
+
end
|
121
|
+
|
122
|
+
def apply_omniauth(omniauth)
|
123
|
+
unless omniauth['user_info'].blank?
|
124
|
+
self.email = omniauth['user_info']['email'] if email.blank?
|
125
|
+
self.first_name = omniauth['user_info']['first_name'] if first_name.blank?
|
126
|
+
self.last_name = omniauth['user_info']['last_name'] if last_name.blank?
|
127
|
+
end
|
128
|
+
authentications.build(:provider => omniauth['provider'], :uid => omniauth['uid'])
|
129
|
+
end
|
130
|
+
|
131
|
+
def password_required?
|
132
|
+
(authentications.empty? || !password.blank?) && super
|
133
|
+
end
|
134
|
+
|
135
|
+
Make sure the devise line in config/routes.rb looks as follows
|
136
|
+
|
137
|
+
devise_for :users, :controllers => {:registrations => 'contour/registrations', :sessions => 'contour/sessions', :passwords => 'contour/passwords'}, :path_names => { :sign_up => 'register', :sign_in => 'login' }
|
138
|
+
|
139
|
+
If there is a line that just says 'devise_for :users' or a duplicate, remove it
|
140
|
+
|
141
|
+
Start your server and navigate to localhost:3000/users/login
|
142
|
+
|
143
|
+
rails s
|
144
|
+
|
145
|
+
|
43
146
|
== Contributing to contour
|
44
147
|
|
45
148
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<% image_name = provider.to_s.downcase %>
|
17
17
|
<% end %>
|
18
18
|
<td style="white-space:nowrap;text-align:center;border-width:0px">
|
19
|
-
<a href="<%=
|
19
|
+
<a href="<%= request.script_name %><%= "/" + OmniAuth.config.path_prefix.split('/').last.to_s %><%= "/" + provider.to_s.downcase %><%= url_params %>" class="noicon"><%= image_tag "contour/#{image_name}_64.png", :align => 'absmiddle', :height => "64px", :alt => provider_name %></a>
|
20
20
|
<br /><br />
|
21
21
|
<%= provider_name %>
|
22
22
|
</td>
|
@@ -14,12 +14,13 @@
|
|
14
14
|
<% provider_name = provider.to_s.titleize %>
|
15
15
|
<% image_name = provider.to_s.downcase %>
|
16
16
|
<% end %>
|
17
|
+
<% if false %>
|
17
18
|
<div style="float:right;margin-right:15px;width:32px;position:relative">
|
18
|
-
<div style="position:absolute;top:-4px">
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
<div style="position:absolute;top:-4px;">
|
20
|
+
<% end %>
|
21
|
+
<div style="float:right;top:-4px;position:relative;height:20px;margin-right:15px">
|
22
|
+
<a href="<%#= Contour.application_site_url.to_s + "/" %><%= request.script_name %><%= "/" + OmniAuth.config.path_prefix.split('/').last.to_s %><%= "/" + provider.to_s.downcase %><%= url_params %>" class="noicon">
|
23
|
+
<%= image_tag "contour/#{image_name}_32.png", :align => 'absmiddle', :height => "28px", :title => provider_name %>
|
24
|
+
</a>
|
23
25
|
</div>
|
24
|
-
|
25
26
|
<% end %>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<div class="authentications">
|
10
10
|
<% for authentication in @authentications %>
|
11
11
|
<div class="authentication">
|
12
|
-
<%= image_tag "contour/#{authentication.provider}_32.png", :
|
12
|
+
<%= image_tag "contour/#{authentication.provider}_32.png", :height => "32px" %>
|
13
13
|
<div class="provider"><%= authentication.provider.titleize %></div>
|
14
14
|
<div class="uid"><%= authentication.uid %></div>
|
15
15
|
<%= link_to "X", authentication, :confirm => 'Are you sure you want to remove this authentication option?', :method => :delete, :class => "remove" %>
|
@@ -8,8 +8,9 @@
|
|
8
8
|
<%= csrf_meta_tags %>
|
9
9
|
</head>
|
10
10
|
<body>
|
11
|
-
|
12
|
-
|
11
|
+
<%#= javascript_tag "var root_url='#{Contour.application_site_url + '/'}';var auth_token='#{form_authenticity_token}';" %>
|
12
|
+
<%= javascript_tag "var root_url='#{request.script_name + '/'}';var auth_token='#{form_authenticity_token}';" %>
|
13
|
+
<div id="header" class="container" style="background-image: url(<%#= Contour.application_site_url %><%= request.script_name %>/assets/<%= Contour.header_background_image %>);">
|
13
14
|
<div id="version" style="position:relative;display:none">
|
14
15
|
<span style="position:absolute;top:-15px;left:82px;font-size:0.5em;font-variant:normal" class="quiet"><%= Contour.application_version %></span>
|
15
16
|
</div>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
</div>
|
12
12
|
</fieldset>
|
13
13
|
<div class="actions">
|
14
|
-
<% form_name =
|
14
|
+
<% form_name = "#{resource.class.name.underscore}_new" %>
|
15
15
|
<%= link_to_function image_tag('contour/tick.png', :alt => '') + "Send me reset password instructions", "$('##{form_name}').submit();", :class => "button positive" %>
|
16
16
|
<div style="clear:both"></div><br />
|
17
17
|
<%= link_to "Login here!", new_session_path(resource_name) %> or <%= link_to "Register here!", new_registration_path(resource_name) %>
|
@@ -5,22 +5,26 @@
|
|
5
5
|
<fieldset style="width:235px">
|
6
6
|
<legend><%= @title %></legend>
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
<% if resource.methods.include?(:first_name) %>
|
9
|
+
<div class="field">
|
10
|
+
<%= f.label :first_name %><br />
|
11
|
+
<%= f.text_field :first_name %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
<% if resource.methods.include?(:last_name) %>
|
16
|
+
<div class="field">
|
17
|
+
<%= f.label :last_name %><br />
|
18
|
+
<%= f.text_field :last_name %>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
17
21
|
|
18
22
|
<div class="field">
|
19
23
|
<%= f.label :email %><br />
|
20
24
|
<%= f.text_field :email %>
|
21
25
|
</div>
|
22
26
|
|
23
|
-
<% if
|
27
|
+
<% if resource.password_required? %>
|
24
28
|
<div class="field">
|
25
29
|
<%= f.label :password %><br />
|
26
30
|
<%= f.password_field :password %>
|
@@ -33,7 +37,7 @@
|
|
33
37
|
<% end %>
|
34
38
|
</fieldset>
|
35
39
|
<div class="actions">
|
36
|
-
<% form_name =
|
40
|
+
<% form_name = "#{resource.class.name.underscore}_new" %>
|
37
41
|
<%= link_to_function image_tag('contour/tick.png', :alt => '') + "Sign up", "$('##{form_name}').submit();", :class => "button positive" %>
|
38
42
|
<div style="clear:both"></div><br />
|
39
43
|
<%= link_to "Already signed up? Login here!", new_session_path(resource_name) %>
|
@@ -15,6 +15,11 @@ If the file does not exist run:<br />
|
|
15
15
|
<br />
|
16
16
|
<code style="margin-left:10px">rails generate contour:install</code><br />
|
17
17
|
<br />
|
18
|
+
<% unless request.script_name.blank? %>
|
19
|
+
<p><b>Subdomain:</b>
|
20
|
+
<%= request.script_name %>
|
21
|
+
</p>
|
22
|
+
<% end %>
|
18
23
|
<% (Contour.class_variables.collect{|v| v.to_s.gsub('@@','')} - ['menu_items']).each do |attribute| %>
|
19
24
|
<p>
|
20
25
|
<b><%= attribute.titleize %>:</b>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
</div>
|
15
15
|
</fieldset>
|
16
16
|
<div class="actions">
|
17
|
-
<% form_name =
|
17
|
+
<% form_name = "#{resource.class.name.underscore}_new" %>
|
18
18
|
<%= link_to_function image_tag('contour/tick.png', :alt => '') + "Login", "$('##{form_name}').submit();", :class => "button positive" %>
|
19
19
|
<% if devise_mapping.rememberable? -%>
|
20
20
|
<div style="padding-top:5px;padding-bottom:4px;"><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
|
data/lib/contour.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'contour/engine' if defined?(Rails)
|
2
|
+
require 'contour/fixes'
|
2
3
|
require 'contour/version'
|
3
4
|
|
4
5
|
module Contour
|
5
6
|
# Default Application Name
|
6
7
|
mattr_accessor :application_name
|
7
|
-
@@application_name =
|
8
|
+
@@application_name = 'Application Name'
|
8
9
|
|
9
10
|
mattr_accessor :application_name_html
|
10
11
|
@@application_name_html = nil
|
@@ -13,9 +14,9 @@ module Contour
|
|
13
14
|
mattr_accessor :application_version
|
14
15
|
@@application_version = nil
|
15
16
|
|
16
|
-
# Default Application Site URL
|
17
|
-
mattr_accessor :application_site_url
|
18
|
-
@@application_site_url = 'http://localhost'
|
17
|
+
# # Default Application Site URL
|
18
|
+
# mattr_accessor :application_site_url
|
19
|
+
# @@application_site_url = 'http://localhost'
|
19
20
|
|
20
21
|
# Default Application Version
|
21
22
|
mattr_accessor :header_background_image
|
@@ -34,15 +35,15 @@ module Contour
|
|
34
35
|
},
|
35
36
|
{
|
36
37
|
:name => 'current_user.name', :eval => true, :id => 'auth', :display => 'signed_in', :position => 'right', :position_class => 'right',
|
37
|
-
:links => [{:html => '"<div style=\"white-space:nowrap\">"+current_user.name+"</div>"', :eval => true}, {:html => '"<div class=\"small quiet\">"+current_user.email+"</div>"', :eval => true}, {:name => 'Authentications', :path => 'authentications_path'}, {:html => "<hr>"}, {:name => 'Logout', :path => 'destroy_user_session_path'}]
|
38
|
+
:links => [{:html => '"<div style=\"white-space:nowrap\">"+(current_user.methods.include?(:name) ? current_user.name.to_s : "")+"</div>"', :eval => true}, {:html => '"<div class=\"small quiet\">"+current_user.email+"</div>"', :eval => true}, {:name => 'Authentications', :path => 'authentications_path'}, {:html => "<hr>"}, {:name => 'Logout', :path => 'destroy_user_session_path'}]
|
38
39
|
},
|
39
40
|
{
|
40
41
|
:name => 'Home', :id => 'home', :display => 'always', :position => 'left', :position_class => 'left',
|
41
|
-
:links => [{:name => 'Home', :path => 'root_path'}
|
42
|
+
:links => [{:name => 'Home', :path => 'root_path'}]
|
42
43
|
}
|
43
44
|
]
|
44
45
|
|
45
46
|
def self.setup
|
46
47
|
yield self
|
47
48
|
end
|
48
|
-
end
|
49
|
+
end
|
data/lib/contour/engine.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'devise'
|
2
|
+
|
3
|
+
# module Devise
|
4
|
+
# class FailureApp < ActionController::Metal
|
5
|
+
# def http_auth
|
6
|
+
# self.status = 403
|
7
|
+
# self.headers["WWW-Authenticate"] = %(Basic realm=#{Devise.http_authentication_realm.inspect})
|
8
|
+
# self.content_type = request.format.to_s
|
9
|
+
# self.response_body = http_auth_body
|
10
|
+
# end
|
11
|
+
# end
|
12
|
+
# end
|
@@ -1,8 +1,13 @@
|
|
1
|
+
require 'omniauth'
|
2
|
+
|
3
|
+
# Overwriting methods from Rack
|
1
4
|
module OmniAuth
|
2
5
|
module Strategies
|
3
6
|
class LDAP
|
7
|
+
# include OmniAuth::Strategy
|
4
8
|
|
5
9
|
def initialize(app, options = {}, &block)
|
10
|
+
Rails.logger.debug "Contour::Fixes => Omniauth::Strategies::LDAP::initialize"
|
6
11
|
super(app, options[:name] || :ldap, options.dup, &block)
|
7
12
|
@name_proc = (@options.delete(:name_proc) || Proc.new {|name| name})
|
8
13
|
@adaptor = OmniAuth::Strategies::LDAP::Adaptor.new(options)
|
@@ -30,6 +35,8 @@ module OmniAuth
|
|
30
35
|
|
31
36
|
# Includes addition of a "domain"
|
32
37
|
def callback_phase
|
38
|
+
failure_temp_path = "#{@env['SCRIPT_NAME']}/#{OmniAuth.config.path_prefix.split('/').last}/failure?message=invalid_credentials"
|
39
|
+
|
33
40
|
begin
|
34
41
|
creds = session['omniauth.ldap']
|
35
42
|
session.delete 'omniauth.ldap'
|
@@ -38,9 +45,9 @@ module OmniAuth
|
|
38
45
|
creds['username'] = @domain.to_s + '\\' + creds['username'] unless @domain.blank?
|
39
46
|
@adaptor.bind(:bind_dn => creds['username'], :password => creds['password'])
|
40
47
|
rescue Exception => e
|
41
|
-
Rails.logger.info "
|
42
|
-
|
43
|
-
return fail!(:invalid_credentials, e)
|
48
|
+
Rails.logger.info "Failed to bind with the default credentials: " + e.message
|
49
|
+
return redirect failure_temp_path
|
50
|
+
# return fail!(:invalid_credentials, e)
|
44
51
|
end
|
45
52
|
|
46
53
|
@ldap_user_info = @adaptor.search(:base => @adaptor.base, :filter => Net::LDAP::Filter.eq(@adaptor.uid, creds['username'].split('\\').last.to_s),:limit => 1)
|
@@ -56,8 +63,9 @@ module OmniAuth
|
|
56
63
|
|
57
64
|
@env['omniauth.auth'] = {'provider' => 'ldap', 'uid' => @user_info['uid'], 'user_info' => @user_info, 'bla' => 5}
|
58
65
|
rescue Exception => e
|
59
|
-
Rails.logger.info "Exception #{e.inspect}"
|
60
|
-
return
|
66
|
+
Rails.logger.info "Exception in callback_phase: #{e.inspect}"
|
67
|
+
return redirect failure_temp_path
|
68
|
+
# return fail!(:invalid_credentials, e)
|
61
69
|
end
|
62
70
|
|
63
71
|
call_app!
|
data/lib/contour/version.rb
CHANGED
@@ -4,26 +4,46 @@ module Contour
|
|
4
4
|
source_root File.expand_path("../../templates", __FILE__)
|
5
5
|
|
6
6
|
desc "Creates a Contour initializer"
|
7
|
-
class_option :orm
|
7
|
+
# class_option :orm
|
8
8
|
|
9
9
|
def copy_initializer
|
10
10
|
template "contour.rb", "config/initializers/contour.rb"
|
11
11
|
end
|
12
12
|
|
13
|
-
def copy_devise
|
14
|
-
|
15
|
-
end
|
13
|
+
# def copy_devise
|
14
|
+
# template "devise.rb", "config/initializers/devise.rb"
|
15
|
+
# end
|
16
16
|
|
17
17
|
def copy_omniauth
|
18
18
|
template "omniauth.rb", "config/initializers/omniauth.rb"
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
22
|
-
|
21
|
+
def add_contour_route
|
22
|
+
contour_routes = []
|
23
|
+
contour_routes << "match '/auth/failure' => 'contour/authentications#failure'"
|
24
|
+
contour_routes << "match '/auth/:provider/callback' => 'contour/authentications#create'"
|
25
|
+
contour_routes << "match '/auth/:provider' => 'contour/authentications#passthru'"
|
26
|
+
contour_routes << "resources :authentications, :controller => 'contour/authentications'"
|
27
|
+
# contour_routes << "devise_for :users, :controllers => {:registrations => 'contour/registrations', :sessions => 'contour/sessions', :passwords => 'contour/passwords'}, :path_names => { :sign_up => 'register', :sign_in => 'login' }"
|
28
|
+
contour_routes.reverse.each do |contour_route|
|
29
|
+
route contour_route
|
30
|
+
end
|
23
31
|
end
|
24
32
|
|
25
|
-
def
|
26
|
-
|
33
|
+
def install_devise
|
34
|
+
generate("devise:install")
|
35
|
+
# model_name = ask("What would you like the user model to be called? [user]")
|
36
|
+
# model_name = "user" if model_name.blank?
|
37
|
+
model_name = "user"
|
38
|
+
generate("devise", model_name)
|
39
|
+
end
|
40
|
+
|
41
|
+
def add_contour_devise_route
|
42
|
+
route "devise_for :users, :controllers => {:registrations => 'contour/registrations', :sessions => 'contour/sessions', :passwords => 'contour/passwords'}, :path_names => { :sign_up => 'register', :sign_in => 'login' }"
|
43
|
+
end
|
44
|
+
|
45
|
+
def show_readme
|
46
|
+
readme "README" if behavior == :invoke
|
27
47
|
end
|
28
48
|
|
29
49
|
# def copy_locale
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
===============================================================================
|
3
|
+
|
4
|
+
Contour requires some additional setup:
|
5
|
+
|
6
|
+
1. Add the following line to your application_controller.rb
|
7
|
+
|
8
|
+
layout "contour/layouts/application"
|
9
|
+
|
10
|
+
2. Edit your application.js manifest to use Contour JavaScript
|
11
|
+
|
12
|
+
//= require contour
|
13
|
+
|
14
|
+
3. Edit your application.css manifest to use Contour CSS
|
15
|
+
|
16
|
+
*= require contour
|
17
|
+
|
18
|
+
4. Remove any scaffold.css files that exist in your application
|
19
|
+
|
20
|
+
5. Make a migration for Authentications
|
21
|
+
|
22
|
+
rails generate model Authentication user_id:integer provider:string uid:string
|
23
|
+
|
24
|
+
6. Add first_name and last_name to User model
|
25
|
+
|
26
|
+
rails generate migration AddFirstNameAndLastNameToUsers first_name:string last_name:string
|
27
|
+
|
28
|
+
===============================================================================
|
@@ -2,7 +2,7 @@
|
|
2
2
|
Contour.setup do |config|
|
3
3
|
|
4
4
|
# Enter your application name here. The name will be displayed in the title of all pages, ex: AppName - PageTitle
|
5
|
-
# config.application_name = ''
|
5
|
+
# config.application_name = 'Application Name'
|
6
6
|
|
7
7
|
# If you want to style your name using html you can do so here, ex: <b>App</b>Name
|
8
8
|
# config.application_name_html = ''
|
@@ -10,9 +10,6 @@ Contour.setup do |config|
|
|
10
10
|
# Enter your application version here. Do not include a trailing backslash. Recommend using a predefined constant
|
11
11
|
# config.application_version = ''
|
12
12
|
|
13
|
-
# Enter the url of your site without a trailing slash, ex: http://localhost/app_root
|
14
|
-
# config.application_site_url = 'http://localhost'
|
15
|
-
|
16
13
|
# Enter your application header background image here.
|
17
14
|
# config.header_background_image = 'rails.png'
|
18
15
|
|
@@ -26,11 +23,11 @@ Contour.setup do |config|
|
|
26
23
|
# },
|
27
24
|
# {
|
28
25
|
# :name => 'current_user.name', :eval => true, :id => 'auth', :display => 'signed_in', :position => 'right', :position_class => 'right', :condition => 'true',
|
29
|
-
# :links => [{:html => '"<div style=\"white-space:nowrap\">"+current_user.name+"</div>"', :eval => true}, {:html => '"<div class=\"small quiet\">"+current_user.email+"</div>"', :eval => true}, {:name => 'Authentications', :path => 'authentications_path'}, {:html => "<hr>"}, {:name => 'Logout', :path => 'destroy_user_session_path'}]
|
26
|
+
# :links => [{:html => '"<div style=\"white-space:nowrap\">"+(current_user.methods.include?(:name) ? current_user.name.to_s : "")+"</div>"', :eval => true}, {:html => '"<div class=\"small quiet\">"+current_user.email+"</div>"', :eval => true}, {:name => 'Authentications', :path => 'authentications_path'}, {:html => "<hr>"}, {:name => 'Logout', :path => 'destroy_user_session_path'}]
|
30
27
|
# },
|
31
28
|
# {
|
32
29
|
# :name => 'Home', :id => 'home', :display => 'always', :position => 'left', :position_class => 'left', :condition => 'true', :image => '', :image_options => {},
|
33
|
-
# :links => [{:name => 'Home', :path => 'root_path', :image => '', :image_options => {}}
|
30
|
+
# :links => [{:name => 'Home', :path => 'root_path', :image => '', :image_options => {}}]
|
34
31
|
# }]
|
35
32
|
|
36
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: contour
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-08 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: devise
|
16
|
-
requirement: &
|
16
|
+
requirement: &70117242428300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.4.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70117242428300
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: omniauth
|
27
|
-
requirement: &
|
27
|
+
requirement: &70117242427760 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 0.2.6
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70117242427760
|
36
36
|
description: Basic Rails Framework files and assets for layout and authentication
|
37
37
|
email: remosm@gmail.com
|
38
38
|
executables: []
|
@@ -63,13 +63,17 @@ files:
|
|
63
63
|
- contour.gemspec
|
64
64
|
- lib/contour.rb
|
65
65
|
- lib/contour/engine.rb
|
66
|
+
- lib/contour/engine/routes.rb
|
67
|
+
- lib/contour/fixes.rb
|
68
|
+
- lib/contour/fixes/devise.rb
|
69
|
+
- lib/contour/fixes/omniauth.rb
|
70
|
+
- lib/contour/fixes/rack.rb
|
66
71
|
- lib/contour/version.rb
|
67
72
|
- lib/generators/contour/install_generator.rb
|
73
|
+
- lib/generators/templates/README
|
68
74
|
- lib/generators/templates/contour.rb
|
69
75
|
- lib/generators/templates/devise.rb
|
70
76
|
- lib/generators/templates/omniauth.rb
|
71
|
-
- lib/generators/templates/omniauth_fix.rb
|
72
|
-
- lib/generators/templates/rack_fix.rb
|
73
77
|
- test/fixtures/authentications.yml
|
74
78
|
- test/functional/authentications_controller_test.rb
|
75
79
|
- test/functional/registrations_controller_test.rb
|