goldberg_generator 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/USAGE +34 -0
- data/goldberg_generator.rb +463 -0
- data/templates/README_GOLDBERG +22 -0
- data/templates/app/views/layouts/application.rhtml +80 -0
- data/templates/layouts/ewnf/README +8 -0
- data/templates/layouts/ewnf/app/views/layouts/application.rhtml +74 -0
- data/templates/layouts/ewnf/public/images/bg.gif +0 -0
- data/templates/layouts/ewnf/public/images/daddy_rightarrow.gif +0 -0
- data/templates/layouts/ewnf/public/images/sample.jpg +0 -0
- data/templates/layouts/ewnf/public/images/title_img.jpg +0 -0
- data/templates/layouts/ewnf/public/stylesheets/layout.css +223 -0
- data/templates/layouts/snooker/app/views/layouts/application.rhtml +74 -0
- data/templates/layouts/snooker/public/images/column_200.png +0 -0
- data/templates/layouts/snooker/public/images/daddy_rightarrow.gif +0 -0
- data/templates/layouts/snooker/public/images/footer_bg.png +0 -0
- data/templates/layouts/snooker/public/images/logo.jpg +0 -0
- data/templates/layouts/snooker/public/stylesheets/layout.css +183 -0
- data/templates/layouts/spoiled_brat/LICENSE.txt +211 -0
- data/templates/layouts/spoiled_brat/README +8 -0
- data/templates/layouts/spoiled_brat/app/views/layouts/application.rhtml +71 -0
- data/templates/layouts/spoiled_brat/public/images/blockquote-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/body-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/centerColumn-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/daddy_leftarrow.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/h2-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/h3-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/header-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/hr-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/logo.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/stylesheets/layout.css +379 -0
- data/templates/public/goldberg/images/action.png +0 -0
- data/templates/public/goldberg/images/add.png +0 -0
- data/templates/public/goldberg/images/bodybg.jpg +0 -0
- data/templates/public/goldberg/images/delete.png +0 -0
- data/templates/public/goldberg/images/down.png +0 -0
- data/templates/public/goldberg/images/footerbg.jpg +0 -0
- data/templates/public/goldberg/images/logo_right.jpg +0 -0
- data/templates/public/goldberg/images/menuhover.jpg +0 -0
- data/templates/public/goldberg/images/page.png +0 -0
- data/templates/public/goldberg/images/permission.png +0 -0
- data/templates/public/goldberg/images/role.png +0 -0
- data/templates/public/goldberg/images/up.png +0 -0
- data/templates/public/goldberg/javascripts/suckerfish.js +12 -0
- data/templates/public/goldberg/stylesheets/goldberg.css +142 -0
- data/templates/public/goldberg/stylesheets/layout.css +321 -0
- data/templates/public/goldberg/stylesheets/suckerfish.css +124 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/auth_controller.rb +104 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/content_pages_controller.rb +197 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/controller_actions_controller.rb +134 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/menu_items_controller.rb +184 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/permissions_controller.rb +60 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/roles_controller.rb +85 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/roles_permissions_controller.rb +65 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/site_controllers_controller.rb +157 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/system_settings_controller.rb +75 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/users_controller.rb +293 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/auth_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/content_pages_helper.rb +23 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/controller_actions_helper.rb +5 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/menu_items_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/permissions_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/roles_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/roles_permissions_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/site_controllers_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/system_settings_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/users_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/content_page.rb +134 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/controller_action.rb +86 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/credentials.rb +128 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/menu.rb +198 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/menu_item.rb +127 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/permission.rb +37 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/role.rb +68 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/roles_permission.rb +18 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/site_controller.rb +59 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/system_settings.rb +112 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/user.rb +69 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/user_mailer.rb +43 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/_login.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/login.rhtml +22 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/logout.rhtml +2 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_fck_create_folder.rxml +6 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_fck_files.rxml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_form.rhtml +32 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/edit.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/fck_speller_pages.rhtml +58 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/list.rhtml +22 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/show.rhtml +57 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/view.rhtml +1 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/view_default.rhtml +1 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/_form.rhtml +53 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/list.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/new.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/show.rhtml +13 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/layouts/_tabpanel_js.rhtml +52 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/layouts/_tabpanel_list.rhtml +7 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_breadcrumbs.rhtml +5 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_form.rhtml +42 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_item_list.rhtml +52 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_item_parent_list.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_menubar.rhtml +21 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_suckerfish.rhtml +14 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/edit.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/list-original.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/list.rhtml +16 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/new.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/show.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/_form.rhtml +7 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/list.rhtml +14 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/show.rhtml +38 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/_form.rhtml +18 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/list.rhtml +21 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/show.rhtml +79 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/_form.rhtml +13 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/list.rhtml +24 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/new_permission_for_role.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/show.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/_form.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/_list.rhtml +26 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/list.rhtml +107 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/show.rhtml +38 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/_form.rhtml +71 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/list.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/show.rhtml +189 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/confirmation_request.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/reset_password.rhtml +17 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/reset_password_request.rhtml +23 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/_form.rhtml +53 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/confirm_registration.rhtml +26 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/confirm_registration_submit.rhtml +4 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/create.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/edit.rhtml +11 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/forgot_password.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/forgot_password_submit.rhtml +4 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/list.rhtml +18 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/new.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/reset_password.rhtml +11 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/reset_password_submit.rhtml +3 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/show.rhtml +33 -0
- data/templates/vendor/plugins/goldberg/db/ContentPage.yml +466 -0
- data/templates/vendor/plugins/goldberg/db/ControllerAction.yml +162 -0
- data/templates/vendor/plugins/goldberg/db/MenuItem.yml +109 -0
- data/templates/vendor/plugins/goldberg/db/Permission.yml +21 -0
- data/templates/vendor/plugins/goldberg/db/Role.yml +493 -0
- data/templates/vendor/plugins/goldberg/db/RolesPermission.yml +26 -0
- data/templates/vendor/plugins/goldberg/db/SiteController.yml +61 -0
- data/templates/vendor/plugins/goldberg/db/SystemSettings.yml +21 -0
- data/templates/vendor/plugins/goldberg/db/User.yml +15 -0
- data/templates/vendor/plugins/goldberg/db/migrate/001_initial_setup.rb +128 -0
- data/templates/vendor/plugins/goldberg/db/migrate/002_menu_rest_items_users_cached_content_pages.rb +26 -0
- data/templates/vendor/plugins/goldberg/db/migrate/003_self_registration.rb +54 -0
- data/templates/vendor/plugins/goldberg/db/migrate/004_column_fixes.rb +119 -0
- data/templates/vendor/plugins/goldberg/init.rb +13 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg.rb +37 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/controller.rb +11 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/filters.rb +197 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/helper.rb +66 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/migration.rb +113 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/migrator.rb +128 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/model.rb +110 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/routes.rb +49 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/test_helper.rb +82 -0
- data/templates/vendor/plugins/goldberg/tasks/goldberg_tasks.rake +47 -0
- data/templates/vendor/plugins/goldberg/test/functional/content_pages_controller_test.rb +31 -0
- data/templates/vendor/plugins/goldberg/test/integration/security_test.rb +134 -0
- data/templates/vendor/plugins/goldberg/test/test_helper.rb +40 -0
- data/templates/vendor/plugins/goldberg/test/unit/content_page_test.rb +87 -0
- data/templates/vendor/plugins/goldberg/test/unit/controller_action_test.rb +85 -0
- data/templates/vendor/plugins/goldberg/test/unit/menu_item_test.rb +46 -0
- data/templates/vendor/plugins/goldberg/test/unit/permission_test.rb +35 -0
- data/templates/vendor/plugins/goldberg/test/unit/site_controller_test.rb +53 -0
- data/templates/vendor/plugins/goldberg/test/unit/system_settings_test.rb +71 -0
- data/templates/vendor/plugins/goldberg/test/unit/user_test.rb +104 -0
- metadata +310 -0
@@ -0,0 +1,60 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class PermissionsController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
6
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
7
|
+
:redirect_to => { :action => :list }
|
8
|
+
|
9
|
+
def index
|
10
|
+
list
|
11
|
+
render :action => 'list'
|
12
|
+
end
|
13
|
+
|
14
|
+
def list
|
15
|
+
@permissions = Permission.find(:all, :order => 'name')
|
16
|
+
end
|
17
|
+
|
18
|
+
def show
|
19
|
+
@permission = Permission.find(params[:id])
|
20
|
+
@pages = ContentPage.find_for_permission(params[:id])
|
21
|
+
@actions = ControllerAction.find_for_permission(params[:id])
|
22
|
+
end
|
23
|
+
|
24
|
+
def new
|
25
|
+
@permission = Permission.new
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
@permission = Permission.new(params[:permission])
|
30
|
+
if @permission.save
|
31
|
+
flash[:notice] = 'Permission was successfully created.'
|
32
|
+
Role.rebuild_cache
|
33
|
+
redirect_to :action => 'list'
|
34
|
+
else
|
35
|
+
render :action => 'new'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def edit
|
40
|
+
@permission = Permission.find(params[:id])
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@permission = Permission.find(params[:id])
|
45
|
+
if @permission.update_attributes(params[:permission])
|
46
|
+
flash[:notice] = 'Permission was successfully updated.'
|
47
|
+
Role.rebuild_cache
|
48
|
+
redirect_to :action => 'show', :id => @permission
|
49
|
+
else
|
50
|
+
render :action => 'edit'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def destroy
|
55
|
+
Permission.find(params[:id]).destroy
|
56
|
+
Role.rebuild_cache
|
57
|
+
redirect_to :action => 'list'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class RolesController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
6
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
7
|
+
:redirect_to => { :action => :list }
|
8
|
+
|
9
|
+
def index
|
10
|
+
list
|
11
|
+
render :action => 'list'
|
12
|
+
end
|
13
|
+
|
14
|
+
def list
|
15
|
+
@roles = Role.find(:all,
|
16
|
+
:order => 'name')
|
17
|
+
end
|
18
|
+
|
19
|
+
def show
|
20
|
+
@role = Role.find(params[:id])
|
21
|
+
@rps = RolesPermission.find_for_role(@role.id)
|
22
|
+
@roles = @role.get_parents
|
23
|
+
foreign
|
24
|
+
end
|
25
|
+
|
26
|
+
def new
|
27
|
+
@role = Role.new
|
28
|
+
foreign()
|
29
|
+
end
|
30
|
+
|
31
|
+
def create
|
32
|
+
@role = Role.new(params[:role])
|
33
|
+
if @role.save
|
34
|
+
Role.rebuild_cache
|
35
|
+
flash[:notice] = 'Role was successfully created.'
|
36
|
+
redirect_to :action => 'list'
|
37
|
+
else
|
38
|
+
foreign
|
39
|
+
render :action => 'new'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def edit
|
44
|
+
@role = Role.find(params[:id])
|
45
|
+
foreign
|
46
|
+
end
|
47
|
+
|
48
|
+
def update
|
49
|
+
@role = Role.find(params[:id])
|
50
|
+
if @role.update_attributes(params[:role])
|
51
|
+
Role.rebuild_cache
|
52
|
+
@role = Role.find(params[:id])
|
53
|
+
flash[:notice] = 'Role was successfully updated.'
|
54
|
+
redirect_to :action => 'show', :id => @role.id
|
55
|
+
else
|
56
|
+
foreign
|
57
|
+
render :action => 'edit'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def destroy
|
62
|
+
Role.find(params[:id]).destroy
|
63
|
+
redirect_to :action => 'list'
|
64
|
+
end
|
65
|
+
|
66
|
+
protected
|
67
|
+
|
68
|
+
def foreign
|
69
|
+
if @role.id
|
70
|
+
@other_roles = Role.find(:all,
|
71
|
+
:conditions => ['id not in (?)', @role.id],
|
72
|
+
:order => 'name')
|
73
|
+
else
|
74
|
+
@other_roles = Role.find(:all,
|
75
|
+
:order => 'name')
|
76
|
+
end
|
77
|
+
@other_roles ||= Array.new
|
78
|
+
@other_roles.unshift Role.new(:id => nil, :name => '(none)')
|
79
|
+
@users = User.find(:all,
|
80
|
+
:conditions => ['role_id = ?', @role.id],
|
81
|
+
:order => 'name')
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
data/templates/vendor/plugins/goldberg/app/controllers/goldberg/roles_permissions_controller.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class RolesPermissionsController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
6
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
7
|
+
:redirect_to => { :action => :list }
|
8
|
+
|
9
|
+
def index
|
10
|
+
list
|
11
|
+
render :action => 'list'
|
12
|
+
end
|
13
|
+
|
14
|
+
def list
|
15
|
+
@roles_permissions = RolesPermission.find(:all)
|
16
|
+
end
|
17
|
+
|
18
|
+
def show
|
19
|
+
@roles_permission = RolesPermission.find(params[:id])
|
20
|
+
end
|
21
|
+
|
22
|
+
def new
|
23
|
+
@roles_permission = RolesPermission.new
|
24
|
+
end
|
25
|
+
|
26
|
+
def new_permission_for_role
|
27
|
+
@roles_permission = RolesPermission.new
|
28
|
+
@roles_permission.role_id = params[:id]
|
29
|
+
@role = Role.find(params[:id])
|
30
|
+
@permissions = Permission.find_not_for_role(params[:id])
|
31
|
+
end
|
32
|
+
|
33
|
+
def create
|
34
|
+
@roles_permission = RolesPermission.new(params[:roles_permission])
|
35
|
+
if @roles_permission.save
|
36
|
+
flash[:notice] = 'RolesPermission was successfully created.'
|
37
|
+
redirect_to :controller => 'roles', :action => 'show',
|
38
|
+
:id => @roles_permission.role_id
|
39
|
+
else
|
40
|
+
render :action => 'new'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def edit
|
45
|
+
@roles_permission = RolesPermission.find(params[:id])
|
46
|
+
end
|
47
|
+
|
48
|
+
def update
|
49
|
+
@roles_permission = RolesPermission.find(params[:id])
|
50
|
+
if @roles_permission.update_attributes(params[:roles_permission])
|
51
|
+
flash[:notice] = 'RolesPermission was successfully updated.'
|
52
|
+
redirect_to :action => 'show', :id => @roles_permission
|
53
|
+
else
|
54
|
+
render :action => 'edit'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def destroy
|
59
|
+
rp = RolesPermission.find(params[:id])
|
60
|
+
role = rp.role_id
|
61
|
+
rp.destroy
|
62
|
+
redirect_to :controller => 'roles', :action => 'show', :id => role
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/templates/vendor/plugins/goldberg/app/controllers/goldberg/site_controllers_controller.rb
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class SiteControllersController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
6
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
7
|
+
:redirect_to => { :action => :list }
|
8
|
+
|
9
|
+
def index
|
10
|
+
list
|
11
|
+
render :action => 'list'
|
12
|
+
end
|
13
|
+
|
14
|
+
def list
|
15
|
+
@builtin_site_controllers = SiteController.find(:all,
|
16
|
+
:conditions => "builtin = 1",
|
17
|
+
:order => 'name')
|
18
|
+
@app_site_controllers =
|
19
|
+
SiteController.find(:all,
|
20
|
+
:conditions => "builtin is null or builtin = 0",
|
21
|
+
:order => 'name')
|
22
|
+
classify_controllers
|
23
|
+
end
|
24
|
+
|
25
|
+
def show
|
26
|
+
@site_controller = SiteController.find(params[:id])
|
27
|
+
@actions = ControllerAction.find(:all,
|
28
|
+
:conditions => ['site_controller_id = ?',
|
29
|
+
params[:id] ],
|
30
|
+
:order => 'name')
|
31
|
+
end
|
32
|
+
|
33
|
+
def new
|
34
|
+
foreign
|
35
|
+
@site_controller = SiteController.new
|
36
|
+
end
|
37
|
+
|
38
|
+
def new_called
|
39
|
+
foreign
|
40
|
+
@site_controller = SiteController.new(:name => params[:id].gsub(/\%2F/, '/'))
|
41
|
+
render :action => 'new'
|
42
|
+
end
|
43
|
+
|
44
|
+
def create
|
45
|
+
@site_controller = SiteController.new(params[:site_controller])
|
46
|
+
if @site_controller.save
|
47
|
+
flash[:notice] = 'SiteController was successfully created.'
|
48
|
+
Role.rebuild_cache
|
49
|
+
redirect_to :action => 'list'
|
50
|
+
else
|
51
|
+
foreign
|
52
|
+
render :action => 'new'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def edit
|
57
|
+
@site_controller = SiteController.find(params[:id])
|
58
|
+
foreign
|
59
|
+
end
|
60
|
+
|
61
|
+
def update
|
62
|
+
@site_controller = SiteController.find(params[:id])
|
63
|
+
if @site_controller.update_attributes(params[:site_controller])
|
64
|
+
flash[:notice] = 'SiteController was successfully updated.'
|
65
|
+
Role.rebuild_cache
|
66
|
+
redirect_to :action => 'show', :id => @site_controller
|
67
|
+
else
|
68
|
+
foreign
|
69
|
+
render :action => 'edit'
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def destroy
|
74
|
+
SiteController.find(params[:id]).destroy
|
75
|
+
Role.rebuild_cache
|
76
|
+
redirect_to :action => 'list'
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
protected
|
81
|
+
|
82
|
+
|
83
|
+
def foreign
|
84
|
+
@permissions = Permission.find(:all, :order => 'name')
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
# @unknown contains ApplicationController class objects hashed by
|
90
|
+
# name, while @app, @builtin and @missing are arrays of
|
91
|
+
# SiteController ActiveRecord objects.
|
92
|
+
|
93
|
+
def classify_controllers
|
94
|
+
from_classes = SiteController.classes
|
95
|
+
|
96
|
+
from_db = SiteController.find(:all,
|
97
|
+
:order => 'name')
|
98
|
+
known = Hash.new
|
99
|
+
@missing = Array.new
|
100
|
+
for dbc in from_db do
|
101
|
+
if from_classes.has_key? dbc.name
|
102
|
+
known[dbc.name] = dbc
|
103
|
+
else
|
104
|
+
@missing << dbc
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
@unknown = Hash.new
|
109
|
+
@app = Array.new
|
110
|
+
@builtin = Array.new
|
111
|
+
|
112
|
+
for name in from_classes.keys.sort do
|
113
|
+
if known.has_key? name
|
114
|
+
if known[name].builtin == 1
|
115
|
+
@builtin << known[name]
|
116
|
+
else
|
117
|
+
@app << known[name]
|
118
|
+
end
|
119
|
+
else
|
120
|
+
@unknown[name] = from_classes[name]
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
@has_missing = (@missing.length > 0) ? true : false
|
125
|
+
@has_unknown = (@unknown.keys.length > 0) ? true : false
|
126
|
+
@has_app = (@app.length > 0) ? true : false
|
127
|
+
@has_builtin = (@builtin.length > 0) ? true : false
|
128
|
+
|
129
|
+
return
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
# Given a controller name, returns an array of available actions to
|
134
|
+
# which that controller will respond.
|
135
|
+
|
136
|
+
def controller_actions(controller_name)
|
137
|
+
|
138
|
+
controllers = controller_classes()
|
139
|
+
actions = Hash.new()
|
140
|
+
|
141
|
+
if @controller_classes.has_key? controller_name
|
142
|
+
controller = @controller_classes[controller_name]
|
143
|
+
|
144
|
+
for method in controller.public_instance_methods do
|
145
|
+
actions[method] = true
|
146
|
+
end
|
147
|
+
|
148
|
+
for hidden in controller.hidden_actions do
|
149
|
+
actions.delete hidden
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
return actions.keys
|
154
|
+
end # def controller_actions
|
155
|
+
|
156
|
+
end # class
|
157
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Goldberg
|
2
|
+
class SystemSettingsController < ApplicationController
|
3
|
+
include Goldberg::Controller
|
4
|
+
|
5
|
+
def index
|
6
|
+
list
|
7
|
+
render :action => 'list'
|
8
|
+
end
|
9
|
+
|
10
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
11
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
12
|
+
:redirect_to => { :action => :list }
|
13
|
+
|
14
|
+
def list
|
15
|
+
@system_settings = SystemSettings.find(:first)
|
16
|
+
redirect_to :action => :show, :id => @system_settings
|
17
|
+
end
|
18
|
+
|
19
|
+
def show
|
20
|
+
foreign()
|
21
|
+
@system_settings = SystemSettings.find(:first)
|
22
|
+
end
|
23
|
+
|
24
|
+
def new
|
25
|
+
@system_settings = SystemSettings.find(:first)
|
26
|
+
if @system_settings != nil
|
27
|
+
redirect_to :action => :edit, :id => @system_settings.id
|
28
|
+
else
|
29
|
+
foreign()
|
30
|
+
@system_settings = SystemSettings.new
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def create
|
35
|
+
@system_settings = SystemSettings.new(params[:system_settings])
|
36
|
+
if @system_settings.save
|
37
|
+
flash[:notice] = 'SystemSettings was successfully created.'
|
38
|
+
redirect_to :action => 'list'
|
39
|
+
else
|
40
|
+
render :action => 'new'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def edit
|
45
|
+
foreign()
|
46
|
+
@system_settings = SystemSettings.find(params[:id])
|
47
|
+
end
|
48
|
+
|
49
|
+
def update
|
50
|
+
@system_settings = SystemSettings.find(params[:id])
|
51
|
+
if @system_settings.update_attributes(params[:system_settings])
|
52
|
+
flash[:notice] = 'SystemSettings was successfully updated.'
|
53
|
+
redirect_to :action => 'show', :id => @system_settings
|
54
|
+
else
|
55
|
+
foreign
|
56
|
+
render :action => 'edit'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def destroy
|
61
|
+
SystemSettings.find(params[:id]).destroy
|
62
|
+
redirect_to :action => 'list'
|
63
|
+
end
|
64
|
+
|
65
|
+
protected
|
66
|
+
|
67
|
+
def foreign
|
68
|
+
@roles = Role.find(:all, :order => 'name')
|
69
|
+
@self_reg_roles = @roles.clone
|
70
|
+
@self_reg_roles.unshift Role.new(:id => nil, :name => '(none)')
|
71
|
+
@pages = ContentPage.find(:all, :order => 'name')
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,293 @@
|
|
1
|
+
require 'digest/sha1'
|
2
|
+
|
3
|
+
module Goldberg
|
4
|
+
class UsersController < ApplicationController
|
5
|
+
include Goldberg::Controller
|
6
|
+
|
7
|
+
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
8
|
+
verify :method => :post, :only => [ :destroy, :create, :update ],
|
9
|
+
:redirect_to => { :action => :list }
|
10
|
+
|
11
|
+
before_filter do
|
12
|
+
@self_reg = false
|
13
|
+
@delegate_reg = false
|
14
|
+
true # proceed...
|
15
|
+
end
|
16
|
+
before_filter :foreign,
|
17
|
+
:only => [:new, :delegate_register, :create, :delegate_create,
|
18
|
+
:edit, :delegate_edit, :update, :delegate_update]
|
19
|
+
before_filter :enable_self_reg,
|
20
|
+
:only => [:self_show, :self_register, :self_create, :self_edit,
|
21
|
+
:self_update, :confirm_registration, :confirm_registration_submit]
|
22
|
+
before_filter :enable_delegate_reg,
|
23
|
+
:only => [:delegate_list, :delegate_show, :delegate_register,
|
24
|
+
:delegate_create, :delegate_edit, :delegate_update,
|
25
|
+
:delegate_destroy]
|
26
|
+
|
27
|
+
def list
|
28
|
+
if @delegate_reg
|
29
|
+
conditions = ['role_id in (?)', Goldberg.credentials.role_ids]
|
30
|
+
else
|
31
|
+
conditions = nil
|
32
|
+
end
|
33
|
+
@users = User.find(:all, :conditions => conditions, :order => 'name')
|
34
|
+
render :action => 'list'
|
35
|
+
end
|
36
|
+
alias_method :delegate_list, :list
|
37
|
+
|
38
|
+
def show
|
39
|
+
if @self_reg
|
40
|
+
@user = Goldberg.user
|
41
|
+
else
|
42
|
+
@user = User.find(params[:id])
|
43
|
+
end
|
44
|
+
if @user
|
45
|
+
if @user.role_id
|
46
|
+
@role = Role.find(@user.role_id)
|
47
|
+
else
|
48
|
+
@role = Role.new(:id => nil, :name => '(none)')
|
49
|
+
end
|
50
|
+
render :action => 'show'
|
51
|
+
else
|
52
|
+
render :nothing => true
|
53
|
+
end
|
54
|
+
end
|
55
|
+
alias_method :self_show, :show
|
56
|
+
alias_method :delegate_show, :show
|
57
|
+
|
58
|
+
def new
|
59
|
+
@user = User.new
|
60
|
+
render :action => 'new'
|
61
|
+
end
|
62
|
+
alias_method :self_register, :new
|
63
|
+
alias_method :delegate_register, :new
|
64
|
+
|
65
|
+
def create
|
66
|
+
@user = User.new(params[:user])
|
67
|
+
if @self_reg
|
68
|
+
@user.role_id = Goldberg.settings.self_reg_role_id
|
69
|
+
@user.self_reg_confirmation_required =
|
70
|
+
Goldberg.settings.self_reg_confirmation_required
|
71
|
+
if Goldberg.settings.self_reg_send_confirmation_email
|
72
|
+
if not @user.email_valid?
|
73
|
+
flash.now[:error] = 'A valid email address is required!'
|
74
|
+
render :action => 'new'
|
75
|
+
return
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
if params[:user][:clear_password].length == 0 or
|
81
|
+
params[:user][:confirm_password] != params[:user][:clear_password]
|
82
|
+
flash.now[:error] = 'Password invalid!'
|
83
|
+
render :action => 'new'
|
84
|
+
else
|
85
|
+
if @user.save
|
86
|
+
flash.now[:notice] = 'User was successfully created.'
|
87
|
+
if @self_reg
|
88
|
+
if Goldberg.settings.self_reg_confirmation_required
|
89
|
+
if Goldberg.settings.self_reg_send_confirmation_email
|
90
|
+
confirm_email = UserMailer.create_confirmation_request(@user)
|
91
|
+
UserMailer.deliver(confirm_email)
|
92
|
+
end
|
93
|
+
render :action => 'create'
|
94
|
+
else
|
95
|
+
AuthController.set_user(session, @user.id)
|
96
|
+
redirect_to @user.get_start_path
|
97
|
+
end
|
98
|
+
else
|
99
|
+
redirect_to :action => 'list'
|
100
|
+
end
|
101
|
+
else
|
102
|
+
render :action => 'new'
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
alias_method :self_create, :create
|
107
|
+
alias_method :delegate_create, :create
|
108
|
+
|
109
|
+
# Invoked when a user clicks on a link in a self-registration
|
110
|
+
# email. Displays a form where the user can enter their username
|
111
|
+
# and password.
|
112
|
+
def confirm_registration
|
113
|
+
@user = User.find_by_confirmation_key(params[:id])
|
114
|
+
@user or flash.now[:error] = 'Sorry, but there is no such confirmation required.'
|
115
|
+
render :action => 'confirm_registration'
|
116
|
+
end
|
117
|
+
|
118
|
+
def confirm_registration_submit
|
119
|
+
@user = User.find(params[:id])
|
120
|
+
# Check password and key etc.
|
121
|
+
if @user and @user.self_reg_confirmation_required and
|
122
|
+
@user.confirmation_key == params[:user][:confirmation_key] and
|
123
|
+
@user.check_password(params[:user][:clear_password])
|
124
|
+
# Confirmed: remove confirmation flag and confirmation key,
|
125
|
+
# save user.
|
126
|
+
@user.self_reg_confirmation_required = false
|
127
|
+
@user.confirmation_key = nil
|
128
|
+
if @user.save
|
129
|
+
flash.now[:notice] = 'Registration confirmed.'
|
130
|
+
AuthController.set_user(session, @user.id)
|
131
|
+
render :action => 'confirm_registration_submit'
|
132
|
+
else
|
133
|
+
flash.now[:error] = 'Could not save confirmation!'
|
134
|
+
render :action => 'confirm_registration'
|
135
|
+
end
|
136
|
+
else
|
137
|
+
flash.now[:error] = 'Self-registration confirmation invalid!'
|
138
|
+
render :action => 'confirm_registration'
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
def edit
|
143
|
+
if @self_reg
|
144
|
+
@user = Goldberg.user
|
145
|
+
else
|
146
|
+
@user = User.find(params[:id])
|
147
|
+
end
|
148
|
+
if @user
|
149
|
+
if @user.role_id
|
150
|
+
@role = Role.find(@user.role_id)
|
151
|
+
end
|
152
|
+
render :action => 'edit'
|
153
|
+
else
|
154
|
+
render :nothing => true
|
155
|
+
end
|
156
|
+
end
|
157
|
+
alias_method :self_edit, :edit
|
158
|
+
alias_method :delegate_edit, :edit
|
159
|
+
|
160
|
+
def update
|
161
|
+
if @self_reg
|
162
|
+
@user = Goldberg.user
|
163
|
+
else
|
164
|
+
@user = User.find(params[:id])
|
165
|
+
end
|
166
|
+
if @user
|
167
|
+
if params[:user]['clear_password'] == ''
|
168
|
+
params[:user].delete('clear_password')
|
169
|
+
end
|
170
|
+
|
171
|
+
# Not allowed to change your own role.
|
172
|
+
if @self_reg
|
173
|
+
params[:user][:role_id] = @user.role_id
|
174
|
+
end
|
175
|
+
|
176
|
+
if params[:user][:clear_password] and
|
177
|
+
params[:user][:clear_password].length > 0 and
|
178
|
+
params[:user][:confirm_password] != params[:user][:clear_password]
|
179
|
+
flash.now[:error] = 'Password invalid!'
|
180
|
+
render :action => 'edit'
|
181
|
+
else
|
182
|
+
if @user.update_attributes(params[:user])
|
183
|
+
flash.now[:notice] = 'User was successfully updated.'
|
184
|
+
redirect_to :action => (@self_reg ? 'self_show' : 'show'),
|
185
|
+
:id => @user
|
186
|
+
else
|
187
|
+
render :action => 'edit'
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end # if @user
|
191
|
+
end # def update
|
192
|
+
alias_method :self_update, :update
|
193
|
+
alias_method :delegate_update, :update
|
194
|
+
|
195
|
+
def destroy
|
196
|
+
User.find(params[:id]).destroy
|
197
|
+
redirect_to :action => 'list'
|
198
|
+
end
|
199
|
+
alias_method :delegate_destroy, :destroy
|
200
|
+
|
201
|
+
def forgot_password
|
202
|
+
render :action => 'forgot_password'
|
203
|
+
end
|
204
|
+
|
205
|
+
def forgot_password_submit
|
206
|
+
@user = User.find_by_name_and_email(params[:user][:name],
|
207
|
+
params[:user][:email])
|
208
|
+
if @user
|
209
|
+
if (not @user.self_reg_confirmation_required)
|
210
|
+
@user.set_confirmation_key
|
211
|
+
if @user.save
|
212
|
+
# Send email with confirmation key
|
213
|
+
reset_email = UserMailer.create_reset_password_request(@user)
|
214
|
+
UserMailer.deliver(reset_email)
|
215
|
+
render :action => 'forgot_password_submit'
|
216
|
+
else
|
217
|
+
render :action => 'forgot_password'
|
218
|
+
end
|
219
|
+
else
|
220
|
+
flash.now[:error] = "You can't reset your password because your account is not yet confirmed."
|
221
|
+
render :action => 'forgot_password'
|
222
|
+
end
|
223
|
+
else
|
224
|
+
flash.now[:error] = "No such user/email."
|
225
|
+
render :action => 'forgot_password'
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
def reset_password
|
230
|
+
# Find user by confirmation key.
|
231
|
+
# Render form with confirmation key, username and email.
|
232
|
+
@user = User.find_by_confirmation_key(params[:id])
|
233
|
+
if @user
|
234
|
+
render :action => 'reset_password'
|
235
|
+
else
|
236
|
+
flash.now[:error] = 'Sorry, but we received no such password reset request.'
|
237
|
+
render :action => 'forgot_password'
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
def reset_password_submit
|
242
|
+
@user = User.find_by_confirmation_key(params[:id])
|
243
|
+
if @user
|
244
|
+
if (not @user.self_reg_confirmation_required)
|
245
|
+
# set @user.clear_password
|
246
|
+
password = @user.class.random_password
|
247
|
+
@user.clear_password = password
|
248
|
+
@user.password_expired = true
|
249
|
+
if @user.save
|
250
|
+
# Send email with confirmation key
|
251
|
+
password_email = UserMailer.create_reset_password(@user, password)
|
252
|
+
UserMailer.deliver(password_email)
|
253
|
+
render :action => 'reset_password_submit'
|
254
|
+
else
|
255
|
+
render :action => 'reset_password'
|
256
|
+
end
|
257
|
+
else
|
258
|
+
flash.now[:error] = "You can't reset your password because your account is not yet confirmed."
|
259
|
+
render :action => 'forgot_password'
|
260
|
+
end
|
261
|
+
else
|
262
|
+
flash.now[:error] = "No such password reset request for user."
|
263
|
+
render :action => 'forgot_password'
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
protected
|
268
|
+
|
269
|
+
def foreign
|
270
|
+
if @delegate_reg
|
271
|
+
conditions = ['id in (?)', Goldberg.credentials.role_ids]
|
272
|
+
else
|
273
|
+
conditions = nil
|
274
|
+
end
|
275
|
+
@roles = Role.find(:all, :conditions => conditions, :order => 'name')
|
276
|
+
end
|
277
|
+
|
278
|
+
def enable_self_reg
|
279
|
+
@self_reg = (Goldberg.settings.self_reg_enabled || false)
|
280
|
+
# (This will also halt the filter chain if self-reg is NOT enabled.)
|
281
|
+
end
|
282
|
+
|
283
|
+
def enable_delegate_reg
|
284
|
+
@delegate_reg = true
|
285
|
+
end
|
286
|
+
|
287
|
+
def enable_password_change
|
288
|
+
@password_change = true
|
289
|
+
true # proceed...
|
290
|
+
end
|
291
|
+
|
292
|
+
end
|
293
|
+
end
|