authcan_easyroller 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  *.swp
2
2
  *.swo
3
+ *.gem
3
4
  pkg/*
data/README.rdoc CHANGED
@@ -1,16 +1,3 @@
1
- == Rails 3 Notes
2
-
3
- I wanted to put this at the top so that nobody misses it. There are currently some bugs due to
4
- Rails 3 still being in beta. As I come across these bugs, I will add them below and any workaround
5
- if available.
6
-
7
- * Bug #3928[https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3928] - process_parameter_filter throws an exception on array parameters
8
-
9
- [Status:] Resolved in source control, awaiting next beta release.
10
- [Workaround:] The code to enable parameter filtering in `lib/authcan_easyroller.rb` has been commented out until the next beta release.
11
-
12
-
13
-
14
1
  == authcan_easyroller
15
2
 
16
3
  This is a basic Rails engine utilizing Authlogic[http://github.com/binarylogic/authlogic],
@@ -61,19 +48,17 @@ planned enhancements so you can get a feel of where this project will go.
61
48
  == Installation/Setup
62
49
 
63
50
  <b>Developers Note:</b><em>I have created an example&nbsp;project[http://github.com/topherfangio/authcan_easyroller-example]
64
- if you are just looking to play with it, or if you are having trouble getting your setup to work properly.</em>
51
+ if you are just looking to play with it, or if you are having trouble getting your setup to work properly. It should
52
+ have everything necessary to get up and running quickly.</em>
65
53
 
66
54
  Assuming you already have Rails 3 installed, installation is very simple; just install the gem and
67
- it's dependencies!
55
+ it's dependencies will automatically be installed!
68
56
 
69
- gem install authlogic cancan easy_roles authcan_easyroller
57
+ gem install authcan_easyroller
70
58
 
71
- Next, add the dependencies to your <tt>Gemfile</tt>:
59
+ Next, add the dependency to your <tt>Gemfile</tt>:
72
60
 
73
- gem "authlogic", :git => "git://github.com/binarylogic/authlogic.git"
74
- gem "cancan"
75
- gem "easy_roles"
76
- gem "authcan_easyroller"
61
+ gem "authcan_easyroller", ">= 0.1.3"
77
62
 
78
63
  Next, create a migration for the users:
79
64
 
@@ -120,9 +105,9 @@ Next, copy the following files to their proper locations (feel free to edit them
120
105
  help get you started). The <tt>rails.js</tt> file at the bottom of the list is the official Rails jQuery file available
121
106
  at http://github.com/rails/jquery-ujs so make sure to remove the existing <tt>rails.js</tt> file from <tt>public/javascripts</tt>.
122
107
 
123
- * ability.rb[http://github.com/topherfangio/authcan_easyroller/raw/master/examples/ability.rb] -> <<APPLICATION>>/app/models/ability.rb
124
- * application.html.erb[http://github.com/topherfangio/authcan_easyroller/raw/master/examples/application.html.erb] -> <<APPLICATION>>/app/view/layouts/application.html.erb
125
- * main.css[http://github.com/topherfangio/authcan_easyroller/raw/master/examples/main.css] -> <<APPLICATION>/public/stylesheets/main.css
108
+ * ability.rb[http://github.com/topherfangio/authcan_easyroller-example/raw/master/app/models/ability.rb] -> <<APPLICATION>>/app/models/ability.rb
109
+ * application.html.erb[http://github.com/topherfangio/authcan_easyroller-example/raw/master/app/views/layouts/application.html.erb] -> <<APPLICATION>>/app/view/layouts/application.html.erb
110
+ * main.css[http://github.com/topherfangio/authcan_easyroller-example/raw/master/public/stylesheets/main.css] -> <<APPLICATION>/public/stylesheets/main.css
126
111
  * rails.js[http://github.com/rails/jquery-ujs/raw/master/src/rails.js] -> <<APPLICATION>/public/javascripts/rails.js
127
112
 
128
113
  Finally, remove <tt>public/index.html</tt> and add the following to your <tt>config/routs.rb</tt> file so that your server will load properly.
@@ -185,9 +170,23 @@ defining the ability. I'll get in touch with the developer to see if this can be
185
170
 
186
171
  # ability.rb
187
172
 
188
- # Moderator role abilities
189
- if current_user.is_moderator?
190
- can :visit_woot_all_day, :all
173
+ class Ability
174
+
175
+ # Include the ability class so you can have some defaults
176
+ include AuthcanEasyroller::Ability
177
+
178
+ def initialize(current_user)
179
+
180
+ # If you override initialize, make sure to call this
181
+ # method so that you have the defaults setup
182
+ ae_ability_defaults(current_user)
183
+
184
+ # Moderator role abilities
185
+ if current_user.is_moderator?
186
+ can :visit_woot_all_day, :all
187
+ end
188
+
189
+ end
191
190
  end
192
191
 
193
192
 
data/Rakefile CHANGED
@@ -11,6 +11,10 @@ begin
11
11
  gem.homepage = "http://github.com/topherfangio/authcan_easyroller"
12
12
  gem.authors = ["Topher Fangio"]
13
13
  gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
14
+
15
+ gem.add_dependency "authlogic", ">= 2.1.3"
16
+ gem.add_dependency "cancan", ">= 1.0.2"
17
+ gem.add_dependency "easy_roles", ">= 1.0.0"
14
18
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
19
  end
16
20
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -1,4 +1,4 @@
1
- class UserSessionsController < AuthcanEasyrollerController
1
+ class UserSessionsController < ApplicationController
2
2
  before_filter :require_no_user, :only => [:new, :create]
3
3
  before_filter :require_user, :only => :destroy
4
4
 
@@ -1,4 +1,4 @@
1
- class UsersController < AuthcanEasyrollerController
1
+ class UsersController < ApplicationController
2
2
 
3
3
  before_filter :load_correct_user, :only => [:show, :edit, :update]
4
4
  before_filter :require_user, :only => [:edit, :update]
@@ -1,3 +1,9 @@
1
1
  class UserSession < Authlogic::Session::Base
2
+ include ActiveModel::Conversion
3
+
2
4
  logout_on_timeout true
5
+
6
+ def persisted?
7
+ false
8
+ end
3
9
  end
@@ -1,27 +1,37 @@
1
1
  <h1>Login</h1>
2
2
 
3
3
  <% form_for @user_session, :url => user_session_path do |f| %>
4
- <%= f.error_messages %>
4
+ <% if @user_session.errors.any? %>
5
+ <div id="error_explanation">
6
+ <h2><%= pluralize(@user_session.errors.count, "error") %> prohibited this nothing from being saved:</h2>
5
7
 
6
- <p>
8
+ <ul>
9
+ <% @user_session.errors.full_messages.each do |msg| %>
10
+ <li><%= msg %></li>
11
+ <% end %>
12
+ </ul>
13
+ </div>
14
+ <% end %>
15
+
16
+ <div class="field">
7
17
  <%= f.label :email %>
8
18
  <%= f.text_field :email %>
9
- </p>
19
+ </div>
10
20
 
11
- <p>
21
+ <div class="field">
12
22
  <%= f.label :password %>
13
23
  <%= f.password_field :password %>
14
- </p>
24
+ </div>
15
25
 
16
- <p>
26
+ <div class="field">
17
27
  <%= f.check_box :remember_me %><%= f.label :remember_me %>
18
- </p>
28
+ </div>
19
29
 
20
- <p>
30
+ <div class="actions">
21
31
  <%= f.submit "Login" %>
22
- </p>
32
+ </div>
23
33
 
24
- <p>
34
+ <div>
25
35
  Don't have an account yet? Why not <%= link_to "sign up", new_user_path %>!
26
- </p>
36
+ </div>
27
37
  <% end %>
@@ -1,3 +1,15 @@
1
+ <% if @user.errors.any? %>
2
+ <div id="error_explanation">
3
+ <h2><%= pluralize(@user.errors.count, "error") %> prohibited this nothing from being saved:</h2>
4
+
5
+ <ul>
6
+ <% @user.errors.full_messages.each do |msg| %>
7
+ <li><%= msg %></li>
8
+ <% end %>
9
+ </ul>
10
+ </div>
11
+ <% end %>
12
+
1
13
  <%= form.hidden_field :id unless form.object.new_record? %>
2
14
 
3
15
  <p>
@@ -1,8 +1,6 @@
1
1
  <h3>Edit My Account</h3>
2
2
 
3
3
  <% form_for @user do |f| %>
4
- <%= f.error_messages %>
5
-
6
4
  <%= render :partial => "form", :object => f %>
7
5
 
8
6
  <p>
@@ -4,25 +4,22 @@
4
4
  <tr>
5
5
  <th>Email</th>
6
6
  <th>Last Seen</th>
7
- <th>Action</th>
7
+ <th></th>
8
8
  </tr>
9
9
 
10
10
  <% @users.each do |user| %>
11
11
  <tr>
12
- <td><%= user.email %></td>
12
+ <td><%= link_to user.email, user %></td>
13
13
  <td><%= time_ago_in_words user.last_request_at %> ago</td>
14
14
 
15
15
  <td>
16
- <%= link_to 'Show', user %>
17
-
18
16
  <% if can? :update, user %>
19
- <%= link_separator %>
20
- <%= link_to 'Edit', edit_user_path(user) %>
17
+ <%= link_to 'edit', edit_user_path(user) %>
21
18
  <% end %>
22
19
 
23
20
  <% if can? :destroy, user %>
24
21
  <%= link_separator %>
25
- <%= link_to 'Delete', user, :confirm => 'Are you sure?', :method => :delete %>
22
+ <%= link_to 'delete', user, :confirm => 'Are you sure?', :method => :delete %>
26
23
  <% end %>
27
24
  </td>
28
25
  </tr>
@@ -32,4 +29,8 @@
32
29
 
33
30
  <br />
34
31
 
35
- Not signed up? <%= link_to 'Register', new_user_path %> now!
32
+ <% if current_user.nil? %>
33
+ Not signed up? <%= link_to 'Register', new_user_path %> now!
34
+ <% elsif can? :manage, User %>
35
+ <%= link_to 'New User', new_user_path %>
36
+ <% end %>
@@ -1,8 +1,6 @@
1
1
  <h3>Register New User</h3>
2
2
 
3
3
  <% form_for @user do |f| %>
4
- <%= f.error_messages %>
5
-
6
4
  <%= render :partial => "form", :object => f %>
7
5
 
8
6
  <p>
@@ -36,4 +36,6 @@
36
36
  </p>
37
37
 
38
38
 
39
- <%= link_to 'Edit', edit_user_path(@user) %> or <%= link_to 'return to list', users_path %>
39
+ <%= link_to('Edit', edit_user_path(@user)) + " or " if can? :edit, @user %>
40
+
41
+ <%= link_to 'return to list', users_path %>
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{authcan_easyroller}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Topher Fangio"]
12
- s.date = %q{2010-04-05}
12
+ s.date = %q{2010-08-16}
13
13
  s.description = %q{This is a basic Rails engine utilizing Authlogic, CanCan and Easy Roles to create a starting point for simple Rails-based applications that need authentication and authorization. }
14
14
  s.email = %q{fangiotophia@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -22,11 +22,8 @@ Gem::Specification.new do |s|
22
22
  "README.rdoc",
23
23
  "Rakefile",
24
24
  "VERSION",
25
- "app/controllers/authcan_easyroller_controller.rb",
26
25
  "app/controllers/user_sessions_controller.rb",
27
26
  "app/controllers/users_controller.rb",
28
- "app/helpers/authcan_easyroller_helper.rb",
29
- "app/models/ability.rb",
30
27
  "app/models/user.rb",
31
28
  "app/models/user_session.rb",
32
29
  "app/views/user_sessions/new.html.erb",
@@ -37,35 +34,43 @@ Gem::Specification.new do |s|
37
34
  "app/views/users/show.html.erb",
38
35
  "authcan_easyroller.gemspec",
39
36
  "config/routes.rb",
40
- "examples/ability.rb",
41
- "examples/application.html.erb",
42
- "examples/main.css",
43
37
  "lib/authcan_easyroller.rb",
38
+ "lib/extensions/action_controller_base.rb",
39
+ "lib/extensions/cancan_ability.rb",
40
+ "lib/helpers/authcan_easyroller.rb",
44
41
  "test/helper.rb",
45
42
  "test/test_authcan_easyroller.rb"
46
43
  ]
47
44
  s.homepage = %q{http://github.com/topherfangio/authcan_easyroller}
48
45
  s.rdoc_options = ["--charset=UTF-8"]
49
46
  s.require_paths = ["lib"]
50
- s.rubygems_version = %q{1.3.6}
47
+ s.rubygems_version = %q{1.3.7}
51
48
  s.summary = %q{Rails 3 engine for user authentication/authorization utilizing Authlogic, CanCan and EasyRoles}
52
49
  s.test_files = [
53
50
  "test/helper.rb",
54
- "test/test_authcan_easyroller.rb",
55
- "examples/ability.rb"
51
+ "test/test_authcan_easyroller.rb"
56
52
  ]
57
53
 
58
54
  if s.respond_to? :specification_version then
59
55
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
60
56
  s.specification_version = 3
61
57
 
62
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
58
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
59
  s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
60
+ s.add_runtime_dependency(%q<authlogic>, [">= 2.1.3"])
61
+ s.add_runtime_dependency(%q<cancan>, [">= 1.0.2"])
62
+ s.add_runtime_dependency(%q<easy_roles>, [">= 1.0.0"])
64
63
  else
65
64
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
65
+ s.add_dependency(%q<authlogic>, [">= 2.1.3"])
66
+ s.add_dependency(%q<cancan>, [">= 1.0.2"])
67
+ s.add_dependency(%q<easy_roles>, [">= 1.0.0"])
66
68
  end
67
69
  else
68
70
  s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
71
+ s.add_dependency(%q<authlogic>, [">= 2.1.3"])
72
+ s.add_dependency(%q<cancan>, [">= 1.0.2"])
73
+ s.add_dependency(%q<easy_roles>, [">= 1.0.0"])
69
74
  end
70
75
  end
71
76
 
@@ -1,6 +1,12 @@
1
- require 'authcan_easyroller'
2
1
  require 'rails'
3
2
 
3
+ require 'cancan'
4
+ require 'authlogic'
5
+ require 'easy_roles'
6
+
7
+ require 'extensions/action_controller_base'
8
+ require 'extensions/cancan_ability'
9
+
4
10
  # AuthcanEasyroller
5
11
  module AuthcanEasyroller
6
12
  class Engine < Rails::Engine
@@ -1,19 +1,6 @@
1
- class AuthcanEasyrollerController < ApplicationController
2
- helper :all # include all helpers, all the time
3
- protect_from_forgery # See ActionController::RequestForgeryProtection for details
4
-
5
- # Scrub sensitive parameters from your log
6
- helper_method :current_user_session, :current_user
7
-
8
- rescue_from CanCan::AccessDenied do |exception|
9
- flash[:error] = exception.message
10
- redirect_back_or_default(root_url)
11
- end
12
-
13
- # Ensure there is at least one user in the system before trying to do anything
14
- before_filter :require_one_user
15
- after_filter :store_location
1
+ require 'action_controller'
16
2
 
3
+ ActionController::Base.class_eval {
17
4
  private
18
5
  def current_user_session
19
6
  return @current_user_session if defined?(@current_user_session)
@@ -76,4 +63,22 @@ class AuthcanEasyrollerController < ApplicationController
76
63
  redirect_to(session[:return_to] || default)
77
64
  session[:return_to] = nil
78
65
  end
79
- end
66
+ }
67
+
68
+ require 'helpers/authcan_easyroller'
69
+ ActionView::Base.send :include, AuthcanEasyrollerHelper
70
+
71
+ ActionController::Base.instance_eval {
72
+ # Scrub sensitive parameters from your log
73
+ helper_method :current_user_session, :current_user
74
+
75
+ rescue_from CanCan::AccessDenied do |exception|
76
+ flash[:error] = exception.message
77
+ redirect_back_or_default(root_url)
78
+ end
79
+
80
+ # Ensure there is at least one user in the system before trying to do anything
81
+ before_filter :require_one_user
82
+ after_filter :store_location
83
+ }
84
+
@@ -0,0 +1,52 @@
1
+ module AuthcanEasyroller
2
+ module Ability
3
+
4
+ def ae_ability_defaults(current_user)
5
+ can :read, :all
6
+ can :manage, UserSession
7
+
8
+ if current_user
9
+ # Abilities for someone with an account (does not necessarily have a "user" role)
10
+ can [:edit], User do |user|
11
+ user == current_user
12
+ end
13
+
14
+ # User role abilities
15
+ if current_user.is_user?
16
+ end
17
+
18
+
19
+ # Moderator role abilities
20
+ if current_user.is_moderator?
21
+ end
22
+
23
+
24
+ # Admin role abilities
25
+ if current_user.is_admin?
26
+ can :manage, :all
27
+ end
28
+
29
+
30
+ # Developer role abilities
31
+ if current_user.is_developer?
32
+ can :manage, :all
33
+ end
34
+ else
35
+ can :create, User
36
+ end
37
+
38
+ end
39
+
40
+ def self.included(base)
41
+ base.send :include, CanCan::Ability
42
+
43
+ base.class_eval {
44
+ def initialize(current_user)
45
+ ae_ability_defaults(current_user)
46
+ end
47
+ }
48
+ end
49
+
50
+ end
51
+
52
+ end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authcan_easyroller
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 29
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 1
8
- - 2
9
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
10
11
  platform: ruby
11
12
  authors:
12
13
  - Topher Fangio
@@ -14,21 +15,71 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-04-05 00:00:00 -05:00
18
+ date: 2010-08-16 00:00:00 -05:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: thoughtbot-shoulda
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
30
33
  type: :development
31
34
  version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: authlogic
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 13
44
+ segments:
45
+ - 2
46
+ - 1
47
+ - 3
48
+ version: 2.1.3
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: cancan
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 19
60
+ segments:
61
+ - 1
62
+ - 0
63
+ - 2
64
+ version: 1.0.2
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: easy_roles
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 23
76
+ segments:
77
+ - 1
78
+ - 0
79
+ - 0
80
+ version: 1.0.0
81
+ type: :runtime
82
+ version_requirements: *id004
32
83
  description: "This is a basic Rails engine utilizing Authlogic, CanCan and Easy Roles to create a starting point for simple Rails-based applications that need authentication and authorization. "
33
84
  email: fangiotophia@gmail.com
34
85
  executables: []
@@ -44,11 +95,8 @@ files:
44
95
  - README.rdoc
45
96
  - Rakefile
46
97
  - VERSION
47
- - app/controllers/authcan_easyroller_controller.rb
48
98
  - app/controllers/user_sessions_controller.rb
49
99
  - app/controllers/users_controller.rb
50
- - app/helpers/authcan_easyroller_helper.rb
51
- - app/models/ability.rb
52
100
  - app/models/user.rb
53
101
  - app/models/user_session.rb
54
102
  - app/views/user_sessions/new.html.erb
@@ -59,10 +107,10 @@ files:
59
107
  - app/views/users/show.html.erb
60
108
  - authcan_easyroller.gemspec
61
109
  - config/routes.rb
62
- - examples/ability.rb
63
- - examples/application.html.erb
64
- - examples/main.css
65
110
  - lib/authcan_easyroller.rb
111
+ - lib/extensions/action_controller_base.rb
112
+ - lib/extensions/cancan_ability.rb
113
+ - lib/helpers/authcan_easyroller.rb
66
114
  - test/helper.rb
67
115
  - test/test_authcan_easyroller.rb
68
116
  has_rdoc: true
@@ -75,27 +123,30 @@ rdoc_options:
75
123
  require_paths:
76
124
  - lib
77
125
  required_ruby_version: !ruby/object:Gem::Requirement
126
+ none: false
78
127
  requirements:
79
128
  - - ">="
80
129
  - !ruby/object:Gem::Version
130
+ hash: 3
81
131
  segments:
82
132
  - 0
83
133
  version: "0"
84
134
  required_rubygems_version: !ruby/object:Gem::Requirement
135
+ none: false
85
136
  requirements:
86
137
  - - ">="
87
138
  - !ruby/object:Gem::Version
139
+ hash: 3
88
140
  segments:
89
141
  - 0
90
142
  version: "0"
91
143
  requirements: []
92
144
 
93
145
  rubyforge_project:
94
- rubygems_version: 1.3.6
146
+ rubygems_version: 1.3.7
95
147
  signing_key:
96
148
  specification_version: 3
97
149
  summary: Rails 3 engine for user authentication/authorization utilizing Authlogic, CanCan and EasyRoles
98
150
  test_files:
99
151
  - test/helper.rb
100
152
  - test/test_authcan_easyroller.rb
101
- - examples/ability.rb
@@ -1,41 +0,0 @@
1
- class Ability
2
- include CanCan::Ability
3
-
4
- def initialize(current_user)
5
- can :read, :all
6
- can :manage, UserSession
7
-
8
- if current_user
9
- # Abilities for someone with an account (does not necessarily have a "user" role)
10
- can [:update, :destroy], User do |user|
11
- user == current_user
12
- end
13
-
14
-
15
- # User role abilities
16
- if current_user.is_user?
17
- end
18
-
19
-
20
- # Moderator role abilities
21
- if current_user.is_moderator?
22
- end
23
-
24
-
25
- # Admin role abilities
26
- if current_user.is_admin?
27
- can :manage, :all
28
- end
29
-
30
-
31
- # Developer role abilities
32
- if current_user.is_developer?
33
- can :manage, :all
34
- end
35
- else
36
- can :create, User
37
- end
38
-
39
- end
40
-
41
- end
data/examples/ability.rb DELETED
@@ -1,41 +0,0 @@
1
- class Ability
2
- include CanCan::Ability
3
-
4
- def initialize(current_user)
5
- can :read, :all
6
- can :manage, UserSession
7
-
8
- if current_user
9
- # Abilities for someone with an account (does not necessarily have a "user" role)
10
- can [:update, :destroy], User do |user|
11
- user == current_user
12
- end
13
-
14
-
15
- # User role abilities
16
- if current_user.is_user?
17
- end
18
-
19
-
20
- # Moderator role abilities
21
- if current_user.is_moderator?
22
- end
23
-
24
-
25
- # Admin role abilities
26
- if current_user.is_admin?
27
- can :manage, :all
28
- end
29
-
30
-
31
- # Developer role abilities
32
- if current_user.is_developer?
33
- can :manage, :all
34
- end
35
- else
36
- can :create, User
37
- end
38
-
39
- end
40
-
41
- end
@@ -1,48 +0,0 @@
1
- <html>
2
- <head>
3
- <%= csrf_meta_tag %>
4
- <script src="http://www.google.com/jsapi"></script>
5
- <script>google.load("jquery", "1.4");</script>
6
-
7
- <%= stylesheet_link_tag 'main' %>
8
- <%= yield :stylesheets %>
9
- </head>
10
-
11
- <body>
12
- <div id='navigation'>
13
- <%= link_to "Users", users_path %>
14
- </div>
15
-
16
- <div id='userland'>
17
- <% if current_user %>
18
- Welcome <%= current_user.email %>!
19
-
20
- <%= link_to "My Account", user_path(current_user) %>
21
- <%= link_separator %>
22
- <%= link_to "Logout", user_session_path, :method => :delete %>
23
- <% else %>
24
- You are not currently
25
- <%= link_to "logged in", new_user_session_path %>.
26
- <% end %>
27
- </div>
28
-
29
- <div id='flashes'>
30
- <%= raw "<h5 class='flash error'>#{flash[:error]}</h5>" unless flash[:error].blank? %>
31
- <%= raw "<h5 class='flash notice'>#{flash[:notice]}</h5>" unless flash[:notice].blank? %>
32
- </div>
33
-
34
- <div id='content'>
35
- <%= yield %>
36
- </div>
37
-
38
- <div id='copyright'>
39
- Copyright &copy; 2010, MyCompany. All rights reserved.
40
- </div>
41
-
42
- <script src="http://www.google.com/jsapi"></script>
43
- <script>google.load("jquery", "1.4");</script>
44
- <%= javascript_include_tag 'rails' %>
45
-
46
- <%= yield :javascript %>
47
- </body>
48
- </html>
data/examples/main.css DELETED
@@ -1,41 +0,0 @@
1
- #navigation {
2
- float: left;
3
- margin-bottom: 10px;
4
- }
5
-
6
- #userland {
7
- float: right;
8
- margin-bottom: 10px;
9
- }
10
-
11
- #flashes {
12
- clear: both;
13
- }
14
-
15
- #content {
16
- margin: 10px;
17
- }
18
-
19
- #copyright {
20
- text-align: center;
21
- }
22
-
23
- .flash {
24
- border: 1px solid #000000;
25
- padding: 10px;
26
- }
27
-
28
- .flash.error {
29
- }
30
-
31
- .flash.notice {
32
- }
33
-
34
- label {
35
- font-weight: bold;
36
- }
37
-
38
- input[type=text],input[type=password],select,textarea {
39
- clear: both;
40
- display: block;
41
- }