lockdown 1.6.5 → 2.0.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.
Files changed (80) hide show
  1. data/.gitignore +1 -0
  2. data/README.txt +8 -5
  3. data/Rakefile +43 -26
  4. data/lib/lockdown/access.rb +108 -0
  5. data/lib/lockdown/configuration.rb +201 -0
  6. data/lib/lockdown/database.rb +31 -36
  7. data/lib/lockdown/delivery.rb +26 -0
  8. data/lib/lockdown/errors.rb +3 -7
  9. data/lib/lockdown/frameworks/rails/controller.rb +21 -59
  10. data/lib/lockdown/frameworks/rails/view.rb +1 -1
  11. data/lib/lockdown/frameworks/rails.rb +7 -43
  12. data/lib/lockdown/helper.rb +14 -85
  13. data/lib/lockdown/orms/active_record.rb +7 -9
  14. data/lib/lockdown/permission.rb +37 -203
  15. data/lib/lockdown/resource.rb +54 -0
  16. data/lib/lockdown/session.rb +16 -25
  17. data/lib/lockdown/user_group.rb +16 -0
  18. data/lib/lockdown.rb +15 -60
  19. data/lockdown.gemspec +29 -69
  20. data/test/helper.rb +9 -0
  21. data/test/lockdown/test_access.rb +80 -0
  22. data/test/lockdown/test_configuration.rb +194 -0
  23. data/test/lockdown/test_delivery.rb +163 -0
  24. data/test/lockdown/test_helper.rb +33 -0
  25. data/test/lockdown/test_permission.rb +73 -0
  26. data/test/lockdown/test_resource.rb +47 -0
  27. data/test/lockdown/test_session.rb +31 -0
  28. data/test/lockdown/test_user_group.rb +17 -0
  29. data/test/test_lockdown.rb +11 -0
  30. metadata +41 -78
  31. data/lib/lockdown/context.rb +0 -41
  32. data/lib/lockdown/references.rb +0 -19
  33. data/lib/lockdown/rspec_helper.rb +0 -118
  34. data/lib/lockdown/rules.rb +0 -372
  35. data/lib/lockdown/system.rb +0 -58
  36. data/rails_generators/lockdown/lockdown_generator.rb +0 -274
  37. data/rails_generators/lockdown/templates/app/controllers/permissions_controller.rb +0 -22
  38. data/rails_generators/lockdown/templates/app/controllers/sessions_controller.rb +0 -39
  39. data/rails_generators/lockdown/templates/app/controllers/user_groups_controller.rb +0 -122
  40. data/rails_generators/lockdown/templates/app/controllers/users_controller.rb +0 -117
  41. data/rails_generators/lockdown/templates/app/helpers/permissions_helper.rb +0 -2
  42. data/rails_generators/lockdown/templates/app/helpers/user_groups_helper.rb +0 -2
  43. data/rails_generators/lockdown/templates/app/helpers/users_helper.rb +0 -2
  44. data/rails_generators/lockdown/templates/app/models/permission.rb +0 -13
  45. data/rails_generators/lockdown/templates/app/models/profile.rb +0 -10
  46. data/rails_generators/lockdown/templates/app/models/user.rb +0 -95
  47. data/rails_generators/lockdown/templates/app/models/user_group.rb +0 -15
  48. data/rails_generators/lockdown/templates/app/views/permissions/index.html.erb +0 -16
  49. data/rails_generators/lockdown/templates/app/views/permissions/show.html.erb +0 -26
  50. data/rails_generators/lockdown/templates/app/views/sessions/new.html.erb +0 -12
  51. data/rails_generators/lockdown/templates/app/views/user_groups/edit.html.erb +0 -33
  52. data/rails_generators/lockdown/templates/app/views/user_groups/index.html.erb +0 -20
  53. data/rails_generators/lockdown/templates/app/views/user_groups/new.html.erb +0 -31
  54. data/rails_generators/lockdown/templates/app/views/user_groups/show.html.erb +0 -29
  55. data/rails_generators/lockdown/templates/app/views/users/edit.html.erb +0 -51
  56. data/rails_generators/lockdown/templates/app/views/users/index.html.erb +0 -22
  57. data/rails_generators/lockdown/templates/app/views/users/new.html.erb +0 -50
  58. data/rails_generators/lockdown/templates/app/views/users/show.html.erb +0 -33
  59. data/rails_generators/lockdown/templates/config/initializers/lockit.rb +0 -1
  60. data/rails_generators/lockdown/templates/db/migrate/create_admin_user.rb +0 -17
  61. data/rails_generators/lockdown/templates/db/migrate/create_permissions.rb +0 -19
  62. data/rails_generators/lockdown/templates/db/migrate/create_profiles.rb +0 -26
  63. data/rails_generators/lockdown/templates/db/migrate/create_user_groups.rb +0 -19
  64. data/rails_generators/lockdown/templates/db/migrate/create_users.rb +0 -17
  65. data/rails_generators/lockdown/templates/lib/lockdown/README +0 -42
  66. data/rails_generators/lockdown/templates/lib/lockdown/init.rb +0 -131
  67. data/spec/lockdown/context_spec.rb +0 -191
  68. data/spec/lockdown/database_spec.rb +0 -162
  69. data/spec/lockdown/frameworks/rails/controller_spec.rb +0 -215
  70. data/spec/lockdown/frameworks/rails/view_spec.rb +0 -96
  71. data/spec/lockdown/frameworks/rails_spec.rb +0 -163
  72. data/spec/lockdown/permission_spec.rb +0 -156
  73. data/spec/lockdown/rspec_helper_spec.rb +0 -40
  74. data/spec/lockdown/rules_spec.rb +0 -245
  75. data/spec/lockdown/session_spec.rb +0 -112
  76. data/spec/lockdown/system_spec.rb +0 -51
  77. data/spec/lockdown_spec.rb +0 -19
  78. data/spec/rcov.opts +0 -5
  79. data/spec/spec.opts +0 -3
  80. data/spec/spec_helper.rb +0 -8
@@ -1,95 +0,0 @@
1
- require 'digest/sha1'
2
- class User < ActiveRecord::Base
3
- has_and_belongs_to_many :user_groups
4
- belongs_to :profile
5
-
6
- # Virtual attributes
7
- attr_accessor :password
8
-
9
- validates_presence_of :login
10
- validates_presence_of :password, :if => :password_required?
11
- validates_presence_of :password_confirmation, :if => :password_required?
12
- validates_length_of :password, :within => 4..40, :if => :password_required?
13
- validates_confirmation_of :password, :if => :password_required?
14
- validates_length_of :login, :within => 3..40
15
- validates_uniqueness_of :login, :case_sensitive => false
16
-
17
- before_save :encrypt_password
18
- before_save :save_profile
19
-
20
- attr_accessible :login, :password, :password_confirmation,
21
- :first_name, :last_name, :email
22
-
23
- # Authenticates a user by their login name and unencrypted password.
24
- # Returns the user or nil.
25
- def self.authenticate(login, password)
26
- u = find :first, :conditions => ['login = ?', login] # need to get the salt
27
- u && u.authenticated?(password) ? u : nil
28
- end
29
-
30
- # Encrypts some data with the salt.
31
- def self.encrypt(password, salt)
32
- Digest::SHA1.hexdigest("--#{salt}--#{password}--")
33
- end
34
-
35
- # Encrypts the password with the user salt
36
- def encrypt(password)
37
- self.class.encrypt(password, salt)
38
- end
39
-
40
- def authenticated?(password)
41
- crypted_password == encrypt(password)
42
- end
43
-
44
- def full_name
45
- first_name + " " + last_name
46
- end
47
-
48
- # Profile information
49
- def first_name
50
- user_profile.first_name
51
- end
52
-
53
- def first_name=(string)
54
- user_profile.first_name = string
55
- end
56
-
57
- def last_name
58
- user_profile.last_name
59
- end
60
-
61
- def last_name=(string)
62
- user_profile.last_name = string
63
- end
64
-
65
- def email
66
- user_profile.email
67
- end
68
-
69
- def email=(string)
70
- user_profile.email = string
71
- end
72
-
73
- def user_profile
74
- self.profile || self.profile = Profile.new
75
- end
76
-
77
- protected
78
-
79
- def encrypt_password
80
- return if password.blank?
81
- if new_record?
82
- self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--")
83
- end
84
- self.crypted_password = encrypt(password)
85
- end
86
-
87
- def save_profile
88
- profile.save
89
- end
90
-
91
- def password_required?
92
- (crypted_password.blank? || !password.blank?)
93
- end
94
-
95
- end
@@ -1,15 +0,0 @@
1
- class UserGroup < ActiveRecord::Base
2
- has_and_belongs_to_many :permissions
3
- has_and_belongs_to_many :users
4
-
5
- validates_presence_of :name
6
-
7
- def all_users
8
- User.find_by_sql <<-SQL
9
- select users.*
10
- from users, user_groups_users
11
- where users.id = user_groups_users.user_id
12
- and user_groups_users.user_group_id = #{self.id}
13
- SQL
14
- end
15
- end
@@ -1,16 +0,0 @@
1
- <h1>Listing Permissions</h1>
2
-
3
- <table>
4
- <tr>
5
- <th>Name</th>
6
- </tr>
7
-
8
- <%% for permission in @permissions %>
9
- <tr>
10
- <td><%%=h permission.name %></td>
11
- <td><%%= link_to 'Show', <%= namespace.blank? ? 'permission_path(permission)' : "#{namespace}_permission_path(permission)" %> %></td>
12
- </tr>
13
- <%% end %>
14
- </table>
15
-
16
- <br />
@@ -1,26 +0,0 @@
1
- <p>
2
- <b>Name</b><br />
3
- <%%= h @permission.name %>
4
- </p>
5
- <p>
6
- <b>Access rights:</b><br />
7
- <%%
8
- Lockdown::System.access_rights_for_permission(@permission).each do |access_right|
9
- %>
10
- <%%= access_right %><br/>
11
- <%%
12
- end
13
- %>
14
- </p>
15
- <p>
16
- <b>Users with permission:</b><br />
17
- <%%
18
- @permission.all_users.each do |user|
19
- %>
20
- <%%= link_to_or_show(user.full_name, <%= namespace.blank? ? 'user' : "#{namespace}_user_path(user)" %>) %><br/>
21
- <%%
22
- end
23
- %>
24
- </p>
25
-
26
- <%%= link_to 'Back', <%= namespace.blank? ? 'permissions_path' : "#{namespace}_permissions_path" %> %>
@@ -1,12 +0,0 @@
1
- <%%= flash[:notice] if flash[:notice] %>
2
- <%%= flash[:error] if flash[:error] %>
3
-
4
- <%% form_tag sessions_path do -%>
5
- <p><label for="login">Login</label><br/>
6
- <%%= text_field_tag 'login' %></p>
7
-
8
- <p><label for="password">Password</label><br/>
9
- <%%= password_field_tag 'password' %></p>
10
-
11
- <p><%%= submit_tag 'Log in' %></p>
12
- <%% end -%>
@@ -1,33 +0,0 @@
1
- <h1>Editing User Group</h1>
2
-
3
- <%% form_for(<%= namespace.blank? ? '@user_group' : "[:#{namespace}, @user_group]" %>) do |f| %>
4
- <%%= f.error_messages %>
5
- <p>
6
- <b>Name</b><br />
7
- <%%= f.text_field :name %>
8
- </p>
9
- <p>
10
- <b>Permissions</b><br />
11
- <ul style="list-style: none;">
12
- <%%
13
- @all_permissions.each_with_index do |perm,i|
14
- input_id = "perm_#{perm.id}"
15
- checked = (@user_group.permission_ids.include?(perm.id) ? "checked" : "")
16
- %>
17
- <li id="li_<%%= input_id %>">
18
- <label for="<%%= input_id %>">
19
- <input id="<%%= input_id %>" name="<%%= input_id %>" type="checkbox" <%%= checked %>/>&nbsp;&nbsp;<%%= perm.name %>
20
- </label>
21
- </li>
22
- <%%
23
- end
24
- %>
25
- </ul>
26
- </p>
27
-
28
- <p> <%%= f.submit "Update" %> </p>
29
- <%% end %>
30
-
31
-
32
- <%%= link_to 'Show', <%= namespace.blank? ? '@user_group' : "#{namespace}_user_group_path(@user_group)" %> %> |
33
- <%%= link_to 'Back', <%= namespace.blank? ? 'user_groups_path' : "#{namespace}_user_groups_path" %> %>
@@ -1,20 +0,0 @@
1
- <h1>Listing User Groups</h1>
2
-
3
- <table>
4
- <tr>
5
- <th>Name</th>
6
- </tr>
7
-
8
- <%% for user_group in @user_groups %>
9
- <tr>
10
- <td><%%=h user_group.name %></td>
11
- <td><%%= link_to 'Show', <%= namespace.blank? ? "user_group_path(user_group)" : "#{namespace}_user_group_path(user_group)" %> %></td>
12
- <td><%%= link_to('Edit', <%= namespace.blank? ? "edit_user_group_path(user_group)" : "edit_#{namespace}_user_group_path(user_group)" %>) unless Lockdown::System.has_user_group?(user_group) %></td>
13
- <td><%%= link_to('Destroy',<%= namespace.blank? ? "user_group_path(user_group)" : "#{namespace}_user_group_path(user_group)" %>, :confirm => 'Are you sure?', :method => :delete) unless Lockdown::System.has_user_group?(user_group) %></td>
14
- </tr>
15
- <%% end %>
16
- </table>
17
-
18
- <br />
19
-
20
- <%%= link_to 'New User Group', <%= namespace.blank? ? "new_user_group_path" : "new_#{namespace}_user_group_path" %> %>
@@ -1,31 +0,0 @@
1
- <h1>New User Group</h1>
2
-
3
- <%% form_for(<%= namespace.blank? ? '@user_group' : "[:#{namespace}, @user_group]" %>) do |f| %>
4
- <%%= f.error_messages %>
5
- <p>
6
- <b>Name</b><br />
7
- <%%= f.text_field :name %>
8
- </p>
9
- <p>
10
- <b>Permissions</b><br />
11
- <ul style="list-style: none;">
12
- <%%
13
- @all_permissions.each_with_index do |perm,i|
14
- input_id = "perm_#{perm.id}"
15
- checked = (@user_group.permission_ids.include?(perm.id) ? "checked" : "")
16
- %>
17
- <li id="li_<%%= input_id %>">
18
- <label for="<%%= input_id %>">
19
- <input id="<%%= input_id %>" name="<%%= input_id %>" type="checkbox" <%%= checked %>/>&nbsp;&nbsp;<%%= perm.name %>
20
- </label>
21
- </li>
22
- <%%
23
- end
24
- %>
25
- </ul>
26
- </p>
27
-
28
- <p> <%%= f.submit "Create" %> </p>
29
- <%% end %>
30
-
31
- <%%= link_to 'Back', <%= namespace.blank? ? 'user_groups_path' : "#{namespace}_user_groups_path" %> %>
@@ -1,29 +0,0 @@
1
- <p>
2
- <b>Name</b><br />
3
- <%%= h @user_group.name %>
4
- </p>
5
- <p>
6
- <b>Permissions</b><br />
7
- <%%
8
- @user_group.permissions.each do |perm|
9
- %>
10
- <%%= perm.name %><br/>
11
- <%%
12
- end
13
- %>
14
- </p>
15
- <p>
16
- <b>Users in user group:</b><br />
17
- <%%
18
- @user_group.all_users.each do |user|
19
- %>
20
- <%%= link_to_or_show(user.full_name, <%= namespace.blank? ? 'user' : "#{namespace}_user_path(user)" %>) %><br/>
21
- <%%
22
- end
23
- %>
24
- </p>
25
-
26
- <%% unless Lockdown::System.has_user_group?(@user_group) %>
27
- <%%= link_to 'Edit', <%= namespace.blank? ? 'edit_user_group_path(@user_group)' : "edit_#{namespace}_user_group_path(@user_group)" %> %> |
28
- <%% end %>
29
- <%%= link_to 'Back', <%= namespace.blank? ? 'user_groups_path' : "#{namespace}_user_groups_path" %> %>
@@ -1,51 +0,0 @@
1
- <h1>Editing User</h1>
2
-
3
- <%% form_for(<%= namespace.blank? ? "@user" : "[:#{namespace}, @user]" %>) do |f| %>
4
- <%%= f.error_messages %>
5
- <p>
6
- <b>First name</b><br />
7
- <%%= f.text_field :first_name %>
8
- </p>
9
- <p>
10
- <b>Last name</b><br />
11
- <%%= f.text_field :last_name %>
12
- </p>
13
- <p>
14
- <b>Email</b><br />
15
- <%%= f.text_field :email %>
16
- </p>
17
- <p>
18
- <b>Login</b><br />
19
- <%%= f.text_field :login %>
20
- </p>
21
- <p>
22
- <b>Password</b><br />
23
- <%%= f.password_field :password %>
24
- </p>
25
- <p>
26
- <b>Password confirmation</b><br />
27
- <%%= f.password_field :password_confirmation %>
28
- </p>
29
- <p>
30
- <b>User Groups</b><br />
31
- <ul style="list-style: none;">
32
- <%%
33
- @user_groups_for_user.each_with_index do |ug,i|
34
- input_id = "ug_#{ug.id}"
35
- checked = (@user.user_group_ids.include?(ug.id) ? "checked" : "")
36
- %>
37
- <li id="li_<%%= input_id %>">
38
- <label for="<%%= input_id %>">
39
- <input id="<%%= input_id %>" name="<%%= input_id %>" type="checkbox" <%%= checked %>/>&nbsp;&nbsp;<%%= ug.name %>
40
- </label>
41
- </li>
42
- <%%
43
- end
44
- %>
45
- </ul>
46
- </p>
47
- <p> <%%= f.submit "Update" %> </p>
48
- <%% end %>
49
-
50
- <%%= link_to 'Show', <%= namespace.blank? ? "user_path(@user)" : "#{namespace}_user_path(@user)" %> %> |
51
- <%%= link_to 'Back', <%= namespace.blank? ? "users_path" : "#{namespace}_users_path" %> %>
@@ -1,22 +0,0 @@
1
- <h1>Listing Users</h1>
2
-
3
- <table>
4
- <tr>
5
- <th>Login</th>
6
- <th>Name</th>
7
- </tr>
8
-
9
- <%% @users.each do |user| %>
10
- <tr>
11
- <td><%%=h user.login %></td>
12
- <td><%%=h user.full_name %></td>
13
- <td><%%= link_to 'Show', <%= namespace.blank? ? "user_path(user)" : "#{namespace}_user_path(user)" %> %></td>
14
- <td><%%= link_to 'Edit', <%= namespace.blank? ? "edit_user_path(user)" : "edit_#{namespace}_user_path(user)" %> %></td>
15
- <td><%%= link_to 'Destroy', <%= namespace.blank? ? "user_path(user)" : "#{namespace}_user_path(user)" %>, :confirm => 'Are you sure?', :method => :delete %></td>
16
- </tr>
17
- <%% end %>
18
- </table>
19
-
20
- <br />
21
-
22
- <%%= link_to 'New User', <%= namespace.blank? ? "new_user_path" : "new_#{namespace}_user_path" %> %>
@@ -1,50 +0,0 @@
1
- <h1>New User</h1>
2
-
3
- <%% form_for(<%= namespace.blank? ? "@user" : "[:#{namespace}, @user]" %>) do |f| %>
4
- <%%= f.error_messages %>
5
- <p>
6
- <b>First name</b><br />
7
- <%%= f.text_field :first_name %>
8
- </p>
9
- <p>
10
- <b>Last name</b><br />
11
- <%%= f.text_field :last_name %>
12
- </p>
13
- <p>
14
- <b>Email</b><br />
15
- <%%= f.text_field :email %>
16
- </p>
17
- <p>
18
- <b>Login</b><br />
19
- <%%= f.text_field :login %>
20
- </p>
21
- <p>
22
- <b>Password</b><br />
23
- <%%= f.password_field :password %>
24
- </p>
25
- <p>
26
- <b>Password confirmation</b><br />
27
- <%%= f.password_field :password_confirmation %>
28
- </p>
29
- <p>
30
- <b>User Groups</b><br />
31
- <ul style="list-style: none;">
32
- <%%
33
- @user_groups_for_user.each_with_index do |ug,i|
34
- input_id = "ug_#{ug.id}"
35
- checked = (@user.user_group_ids.include?(ug.id) ? "checked" : "")
36
- %>
37
- <li id="li_<%%= input_id %>">
38
- <label for="<%%= input_id %>">
39
- <input id="<%%= input_id %>" name="<%%= input_id %>" type="checkbox" <%%= checked %>/>&nbsp;&nbsp;<%%= ug.name %>
40
- </label>
41
- </li>
42
- <%%
43
- end
44
- %>
45
- </ul>
46
- </p>
47
- <p> <%%= f.submit "Create" %> </p>
48
- <%% end %>
49
-
50
- <%%= link_to 'Back', <%= namespace.blank? ? "users_path" : "#{namespace}_users_path" %> %>
@@ -1,33 +0,0 @@
1
- <h1>Showing User</h1>
2
-
3
- <p>
4
- <b>First name</b><br />
5
- <%%= h @user.first_name %>
6
- </p>
7
- <p>
8
- <b>Last name</b><br />
9
- <%%= h @user.last_name %>
10
- </p>
11
- <p>
12
- <b>Email</b><br />
13
- <%%= h @user.email %>
14
- </p>
15
- <p>
16
- <b><span>L</span>ogin</b><br />
17
- <%%= h @user.login %>
18
- </p>
19
- <p>
20
- <b>User Groups</b><br />
21
- <ul style="list-style: none;">
22
- <%%
23
- @user.user_groups.each do |ug|
24
- %>
25
- <%%= h ug.name %> <br/>
26
- <%%
27
- end
28
- %>
29
- </ul>
30
- </p>
31
-
32
- <%%= link_to 'Edit', <%= namespace.blank? ? "edit_user_path(@user)" : "edit_#{namespace}_user_path(@user)" %> %> |
33
- <%%= link_to 'Back', <%= namespace.blank? ? "users_path" : "#{namespace}_users_path" %> %>
@@ -1 +0,0 @@
1
- require 'lockdown'
@@ -1,17 +0,0 @@
1
- class CreateAdminUser < ActiveRecord::Migration
2
- def self.up
3
- # TODO: Change the password
4
- u = User.create(:password => "password",
5
- :password_confirmation => "password",
6
- :first_name => "Administrator",
7
- :last_name => "User",
8
- :email => "administrator@a.com",
9
- :login => "admin")
10
-
11
- Lockdown::System.make_user_administrator(u)
12
- end
13
-
14
- def self.down
15
- #Nothing to see here...
16
- end
17
- end
@@ -1,19 +0,0 @@
1
- class CreatePermissions < ActiveRecord::Migration
2
- def self.up
3
- create_table :permissions do |t|
4
- t.string :name
5
-
6
- t.timestamps
7
- end
8
-
9
- create_table :permissions_user_groups, :id => false do |t|
10
- t.integer :permission_id
11
- t.integer :user_group_id
12
- end
13
- end
14
-
15
- def self.down
16
- drop_table :permissions_user_groups
17
- drop_table :permissions
18
- end
19
- end
@@ -1,26 +0,0 @@
1
- class CreateProfiles < ActiveRecord::Migration
2
- def self.up
3
- create_table :profiles do |t|
4
- t.string :first_name
5
- t.string :last_name
6
- t.string :email
7
- t.integer :updated_by
8
- t.boolean :is_disabled
9
-
10
- t.timestamps
11
- end
12
-
13
- # The System profile is used as the updated_by reference when records
14
- # are created programatically and the responsible user cannot be determined
15
- # or is simply not available.
16
- # TODO: Change email address
17
- Profile.create(:first_name => "System",
18
- :last_name => "User",
19
- :email => "system@a.com")
20
-
21
- end
22
-
23
- def self.down
24
- drop_table :profiles
25
- end
26
- end
@@ -1,19 +0,0 @@
1
- class CreateUserGroups < ActiveRecord::Migration
2
- def self.up
3
- create_table :user_groups do |t|
4
- t.string :name
5
-
6
- t.timestamps
7
- end
8
-
9
- create_table :user_groups_users, :id => false do |t|
10
- t.integer :user_group_id
11
- t.integer :user_id
12
- end
13
- end
14
-
15
- def self.down
16
- drop_table :user_groups_users
17
- drop_table :user_groups
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- class CreateUsers < ActiveRecord::Migration
2
- def self.up
3
- create_table :users do |t|
4
- t.string :login
5
- t.string :crypted_password
6
- t.string :salt
7
- t.integer :profile_id
8
- t.integer :updated_by
9
-
10
- t.timestamps
11
- end
12
- end
13
-
14
- def self.down
15
- drop_table :users
16
- end
17
- end
@@ -1,42 +0,0 @@
1
- #
2
- # !!!!IMPORTANT!!!!
3
- #
4
- #*** MUST define a current_user method that will return the current user object
5
- #
6
- #*** MUST add call to add_lockdown_session_values to your login method
7
- #
8
- #*** MAY NEED to add call to reset_lockdown_session to your logout method.
9
- # ** Not needed if your authentication system resets the session
10
- #
11
- # Definitely need to use the user_group and permission models. The lockdown
12
- # generator will provide those for you. Just add the following to your user
13
- # model:
14
- # has_and_belongs_to_many :user_groups
15
- #
16
- # That's it!
17
- #
18
- #
19
- # ~~~~Method Descriptions~~~~
20
-
21
- # The Lockdown gem defines these session methods:
22
- #
23
- # current_user_id: returns the id of the current_user
24
- #
25
- # logged_in? : returns true if current_user_id > 0
26
- #
27
- # current_user_is_admin?: returns true if user is assigned
28
- # administrator rights.
29
- #
30
- # reset_lockdown_session: This will nil the following session values:
31
- # current_user_id
32
- # access_rights
33
- # expiry_time
34
- #
35
- # current_user_access_in_group?(grp): grp is a symbol referencing a
36
- # Lockdown::UserGroups method such as :registered_users
37
- # Will return true if the session[:access_rights] contain at
38
- # least one match to the access_right list associated to the group
39
- #
40
- # If you want access to any of these methods in your view, just add them
41
- # as helpers in your controller (application controller for global use).
42
- #