ioquatix-account_engine 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/README +0 -0
  2. data/lib/account_engine/configuration.rb +101 -0
  3. data/lib/account_engine/controller.rb +246 -0
  4. data/lib/account_engine/helper.rb +104 -0
  5. data/lib/account_engine/password.rb +432 -0
  6. data/lib/account_engine/support.rb +12 -0
  7. data/lib/account_engine/user_account/class_methods.rb +63 -0
  8. data/lib/account_engine/user_account.rb +184 -0
  9. data/lib/account_engine.rb +63 -0
  10. data/rails/app/controllers/account_controller.rb +162 -0
  11. data/rails/app/controllers/permissions_controller.rb +90 -0
  12. data/rails/app/controllers/roles_controller.rb +133 -0
  13. data/rails/app/controllers/users_controller.rb +144 -0
  14. data/rails/app/helpers/account_helper.rb +3 -0
  15. data/rails/app/helpers/permissions_helper.rb +3 -0
  16. data/rails/app/helpers/roles_helper.rb +3 -0
  17. data/rails/app/helpers/users_helper.rb +3 -0
  18. data/rails/app/models/permission.rb +129 -0
  19. data/rails/app/models/role.rb +60 -0
  20. data/rails/app/models/user.rb +5 -0
  21. data/rails/app/models/user_notify.rb +75 -0
  22. data/rails/app/views/account/_form.rhtml +8 -0
  23. data/rails/app/views/account/change_password.rhtml +17 -0
  24. data/rails/app/views/account/edit.rhtml +5 -0
  25. data/rails/app/views/account/forgot_password.rhtml +12 -0
  26. data/rails/app/views/account/home.rhtml +3 -0
  27. data/rails/app/views/account/login.rhtml +27 -0
  28. data/rails/app/views/account/logout.rhtml +8 -0
  29. data/rails/app/views/account/signup.rhtml +28 -0
  30. data/rails/app/views/permissions/_form.rhtml +14 -0
  31. data/rails/app/views/permissions/_list.rhtml +38 -0
  32. data/rails/app/views/permissions/edit.rhtml +5 -0
  33. data/rails/app/views/permissions/index.rhtml +3 -0
  34. data/rails/app/views/permissions/new.rhtml +5 -0
  35. data/rails/app/views/roles/_form.rhtml +8 -0
  36. data/rails/app/views/roles/_permissions.rhtml +25 -0
  37. data/rails/app/views/roles/edit.rhtml +5 -0
  38. data/rails/app/views/roles/index.rhtml +34 -0
  39. data/rails/app/views/roles/new.rhtml +5 -0
  40. data/rails/app/views/roles/show.rhtml +20 -0
  41. data/rails/app/views/user_notify/change_password.rhtml +10 -0
  42. data/rails/app/views/user_notify/delete.rhtml +5 -0
  43. data/rails/app/views/user_notify/forgot_password.rhtml +11 -0
  44. data/rails/app/views/user_notify/pending_delete.rhtml +9 -0
  45. data/rails/app/views/user_notify/signup.rhtml +12 -0
  46. data/rails/app/views/users/_form.rhtml +12 -0
  47. data/rails/app/views/users/edit.rhtml +5 -0
  48. data/rails/app/views/users/index.rhtml +38 -0
  49. data/rails/app/views/users/new.rhtml +5 -0
  50. data/rails/app/views/users/roles.rhtml +42 -0
  51. data/rails/app/views/users/show.rhtml +36 -0
  52. data/rails/assets/images/default/omnipotent.png +0 -0
  53. data/rails/assets/images/default/system.png +0 -0
  54. data/rails/assets/images/permissions/create.png +0 -0
  55. data/rails/assets/images/permissions/sync.png +0 -0
  56. data/rails/assets/images/roles/add_permission.png +0 -0
  57. data/rails/assets/images/roles/create.png +0 -0
  58. data/rails/assets/images/roles/edit.png +0 -0
  59. data/rails/assets/images/roles/remove_permission.png +0 -0
  60. data/rails/assets/images/roles/user.png +0 -0
  61. data/rails/assets/images/table_background.png +0 -0
  62. data/rails/assets/images/users/create.png +0 -0
  63. data/rails/assets/images/users/destroy.png +0 -0
  64. data/rails/assets/images/users/edit.png +0 -0
  65. data/rails/assets/images/users/show.png +0 -0
  66. data/rails/assets/javascripts/account_engine.js +166 -0
  67. data/rails/assets/stylesheets/account_engine.css +7 -0
  68. data/rails/assets/stylesheets/check_password.css +10 -0
  69. data/rails/assets/stylesheets/simple.css +168 -0
  70. data/rails/db/migrate/001_initial_schema.rb +49 -0
  71. data/rails/init.rb +21 -0
  72. data/rails/routes.rb +5 -0
  73. data/rails/tasks/account_engine.rake +123 -0
  74. metadata +165 -0
@@ -0,0 +1,123 @@
1
+ namespace :plugins do
2
+ namespace :account_engine do
3
+ desc 'Create the default roles/permissions/users'
4
+ task :bootstrap => [:sync_permissions, :create_roles, :reset_role_permissions, :create_admin_user]
5
+
6
+ desc 'Add any new controller/action permissions to the authorization database'
7
+ task :sync_permissions => :environment do
8
+ Permission.synchronize_with_controllers
9
+ end
10
+
11
+ desc 'Create the administrator super-user'
12
+ task :create_admin_user => :environment do
13
+ # Create the administrator user, if needed
14
+ if User.find_by_login(AccountEngine.admin_login) == nil
15
+ u = User.find_by_email(AccountEngine.admin_email)
16
+
17
+ if u
18
+ puts "User already exists with email address #{AccountEngine.admin_email}..."
19
+ raise "User is not admin user?" unless user.admin?
20
+ else
21
+ u = User.new
22
+ u.email = AccountEngine.admin_email
23
+ end
24
+
25
+ puts "Creating admin user '#{AccountEngine.admin_login}' with temp password '#{AccountEngine.admin_password}'"
26
+ u.login = AccountEngine.admin_login
27
+ u.password = AccountEngine.admin_password
28
+ u.verified = 1
29
+ raise "Couldn't save administrator!" if not u.save
30
+ end
31
+
32
+ u = User.find_by_login(AccountEngine.admin_login)
33
+ if !u.roles.include?(Role.find_by_name(AccountEngine.admin_role_name))
34
+ u.roles << Role.find_by_name(AccountEngine.admin_role_name)
35
+ end
36
+
37
+ raise "Couldn't save administrator after assigning roles!" if !u.save
38
+ end
39
+
40
+ desc 'Reset default role permissions'
41
+ task :reset_role_permissions => :environment do
42
+ guest = Role.find_by_name(AccountEngine.guest_role_name)
43
+ admin = Role.find_by_name(AccountEngine.admin_role_name)
44
+ user = Role.find_by_name(AccountEngine.user_role_name)
45
+
46
+ if guest
47
+ guest.permissions.clear
48
+
49
+ guest.permissions << Permission.for('account', 'login')
50
+ guest.permissions << Permission.for('account', 'forgot_password')
51
+ guest.permissions << Permission.for('account', 'signup')
52
+
53
+ raise "Couldn't save guest role after setting permissions!" if !guest.save
54
+ end
55
+
56
+ if admin
57
+ admin.permissions.clear
58
+
59
+ puts "Scanning all permissions..."
60
+ Permission.find(:all).each { |permission|
61
+ if !admin.permissions.include?(permission)
62
+ puts "#{permission.controller}/#{permission.action}..."
63
+ admin.permissions << permission
64
+ end
65
+ }
66
+
67
+ puts "Done."
68
+
69
+ raise "Couldn't save admin role after assigning permissions!" if !admin.save
70
+ end
71
+
72
+ if user
73
+ user.permissions.clear
74
+
75
+ # all users automatically get the Guest permissions implicitly
76
+ user.permissions << Permission.for('account', 'logout')
77
+ user.permissions << Permission.for('account', 'home')
78
+ user.permissions << Permission.for('account', 'change_password')
79
+
80
+ raise "Couldn't save default user role after assigning permissions!" if !user.save
81
+ end
82
+ end
83
+
84
+ desc 'Create the default roles'
85
+ task :create_roles => :environment do
86
+
87
+ # Create the Guest Role
88
+ if Role.find_by_name(AccountEngine.guest_role_name) == nil
89
+ puts "Creating guest role '#{AccountEngine.guest_role_name}'"
90
+ guest = Role.new
91
+ guest.name = AccountEngine.guest_role_name
92
+ guest.description = "Implicit role for all accessors of the site"
93
+ guest.system = true
94
+ guest.omnipotent = false
95
+ raise "Couldn't save guest role!" if !guest.save
96
+ end
97
+
98
+ @all_action_permissions = Permission.find(:all)
99
+
100
+ # Create the Admin role
101
+ if Role.find_by_name(AccountEngine.admin_role_name) == nil
102
+ puts "Creating admin role '#{AccountEngine.admin_role_name}'"
103
+ admin = Role.new
104
+ admin.name = AccountEngine.admin_role_name
105
+ admin.description = "The system administrator, with REAL ULTIMATE POWER."
106
+ admin.omnipotent = true
107
+ admin.system = true
108
+ raise "Couldn't save admin role!" if !admin.save
109
+ end
110
+
111
+ # Create the User role, if needed
112
+ if Role.find_by_name(AccountEngine.user_role_name) == nil
113
+ puts "Creating user role '#{AccountEngine.user_role_name}'"
114
+ user = Role.new
115
+ user.name = AccountEngine.user_role_name
116
+ user.description = "The default role for all logged-in users"
117
+ user.system = true
118
+ user.omnipotent = false
119
+ raise "Couldn't save default user role!" if !user.save
120
+ end
121
+ end
122
+ end
123
+ end
metadata ADDED
@@ -0,0 +1,165 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ioquatix-account_engine
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Samuel Williams
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-10-24 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ioquatix-engines
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: ioquatix-html_helpers
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ description:
34
+ email:
35
+ executables: []
36
+
37
+ extensions: []
38
+
39
+ extra_rdoc_files: []
40
+
41
+ files:
42
+ - lib/account_engine
43
+ - lib/account_engine/configuration.rb
44
+ - lib/account_engine/controller.rb
45
+ - lib/account_engine/helper.rb
46
+ - lib/account_engine/password.rb
47
+ - lib/account_engine/support.rb
48
+ - lib/account_engine/user_account
49
+ - lib/account_engine/user_account/class_methods.rb
50
+ - lib/account_engine/user_account.rb
51
+ - lib/account_engine.rb
52
+ - rails/app
53
+ - rails/app/controllers
54
+ - rails/app/controllers/account_controller.rb
55
+ - rails/app/controllers/permissions_controller.rb
56
+ - rails/app/controllers/roles_controller.rb
57
+ - rails/app/controllers/users_controller.rb
58
+ - rails/app/helpers
59
+ - rails/app/helpers/account_helper.rb
60
+ - rails/app/helpers/permissions_helper.rb
61
+ - rails/app/helpers/roles_helper.rb
62
+ - rails/app/helpers/users_helper.rb
63
+ - rails/app/models
64
+ - rails/app/models/permission.rb
65
+ - rails/app/models/role.rb
66
+ - rails/app/models/user.rb
67
+ - rails/app/models/user_notify.rb
68
+ - rails/app/views
69
+ - rails/app/views/account
70
+ - rails/app/views/account/_form.rhtml
71
+ - rails/app/views/account/change_password.rhtml
72
+ - rails/app/views/account/edit.rhtml
73
+ - rails/app/views/account/forgot_password.rhtml
74
+ - rails/app/views/account/home.rhtml
75
+ - rails/app/views/account/login.rhtml
76
+ - rails/app/views/account/logout.rhtml
77
+ - rails/app/views/account/signup.rhtml
78
+ - rails/app/views/permissions
79
+ - rails/app/views/permissions/_form.rhtml
80
+ - rails/app/views/permissions/_list.rhtml
81
+ - rails/app/views/permissions/edit.rhtml
82
+ - rails/app/views/permissions/index.rhtml
83
+ - rails/app/views/permissions/new.rhtml
84
+ - rails/app/views/roles
85
+ - rails/app/views/roles/_form.rhtml
86
+ - rails/app/views/roles/_permissions.rhtml
87
+ - rails/app/views/roles/edit.rhtml
88
+ - rails/app/views/roles/index.rhtml
89
+ - rails/app/views/roles/new.rhtml
90
+ - rails/app/views/roles/show.rhtml
91
+ - rails/app/views/user_notify
92
+ - rails/app/views/user_notify/change_password.rhtml
93
+ - rails/app/views/user_notify/delete.rhtml
94
+ - rails/app/views/user_notify/forgot_password.rhtml
95
+ - rails/app/views/user_notify/pending_delete.rhtml
96
+ - rails/app/views/user_notify/signup.rhtml
97
+ - rails/app/views/users
98
+ - rails/app/views/users/_form.rhtml
99
+ - rails/app/views/users/edit.rhtml
100
+ - rails/app/views/users/index.rhtml
101
+ - rails/app/views/users/new.rhtml
102
+ - rails/app/views/users/roles.rhtml
103
+ - rails/app/views/users/show.rhtml
104
+ - rails/assets
105
+ - rails/assets/images
106
+ - rails/assets/images/default
107
+ - rails/assets/images/default/omnipotent.png
108
+ - rails/assets/images/default/system.png
109
+ - rails/assets/images/permissions
110
+ - rails/assets/images/permissions/create.png
111
+ - rails/assets/images/permissions/sync.png
112
+ - rails/assets/images/roles
113
+ - rails/assets/images/roles/add_permission.png
114
+ - rails/assets/images/roles/create.png
115
+ - rails/assets/images/roles/edit.png
116
+ - rails/assets/images/roles/remove_permission.png
117
+ - rails/assets/images/roles/user.png
118
+ - rails/assets/images/table_background.png
119
+ - rails/assets/images/users
120
+ - rails/assets/images/users/create.png
121
+ - rails/assets/images/users/destroy.png
122
+ - rails/assets/images/users/edit.png
123
+ - rails/assets/images/users/show.png
124
+ - rails/assets/javascripts
125
+ - rails/assets/javascripts/account_engine.js
126
+ - rails/assets/stylesheets
127
+ - rails/assets/stylesheets/account_engine.css
128
+ - rails/assets/stylesheets/check_password.css
129
+ - rails/assets/stylesheets/simple.css
130
+ - rails/db
131
+ - rails/db/migrate
132
+ - rails/db/migrate/001_initial_schema.rb
133
+ - rails/init.rb
134
+ - rails/routes.rb
135
+ - rails/tasks
136
+ - rails/tasks/account_engine.rake
137
+ - README
138
+ has_rdoc: false
139
+ homepage: http://wiki.oriontransfer.org/?rails:account_engine
140
+ post_install_message:
141
+ rdoc_options: []
142
+
143
+ require_paths:
144
+ - lib
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: "0"
150
+ version:
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: "0"
156
+ version:
157
+ requirements: []
158
+
159
+ rubyforge_project:
160
+ rubygems_version: 1.2.0
161
+ signing_key:
162
+ specification_version: 2
163
+ summary: Account Engine for Rails. Manages users, roles and role-based permissions.
164
+ test_files: []
165
+