contour 0.4.0 → 0.5.0
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/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
|