ioquatix-account_engine 0.1.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 (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
+