alberich 0.2.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 (242) hide show
  1. data/Gemfile +18 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +37 -0
  4. data/Rakefile +34 -0
  5. data/alberich.gemspec +34 -0
  6. data/app/assets/javascripts/alberich/application.js +15 -0
  7. data/app/assets/javascripts/alberich/permissions.js +2 -0
  8. data/app/assets/javascripts/alberich/privileges.js +2 -0
  9. data/app/assets/javascripts/alberich/roles.js +2 -0
  10. data/app/assets/stylesheets/alberich/application.css +13 -0
  11. data/app/assets/stylesheets/alberich/permissions.css +4 -0
  12. data/app/assets/stylesheets/alberich/privileges.css +4 -0
  13. data/app/assets/stylesheets/alberich/roles.css +4 -0
  14. data/app/assets/stylesheets/scaffold.css +56 -0
  15. data/app/controllers/alberich/application_controller.rb +4 -0
  16. data/app/controllers/alberich/application_controller_helper.rb +118 -0
  17. data/app/controllers/alberich/permissions_controller.rb +211 -0
  18. data/app/controllers/alberich/privileges_controller.rb +105 -0
  19. data/app/controllers/alberich/roles_controller.rb +97 -0
  20. data/app/helpers/alberich/application_helper.rb +4 -0
  21. data/app/helpers/alberich/permissions_helper.rb +4 -0
  22. data/app/helpers/alberich/privileges_helper.rb +4 -0
  23. data/app/helpers/alberich/roles_helper.rb +4 -0
  24. data/app/models/alberich/base_permission_object.rb +42 -0
  25. data/app/models/alberich/derived_permission.rb +25 -0
  26. data/app/models/alberich/entity.rb +27 -0
  27. data/app/models/alberich/entity_target_observer.rb +16 -0
  28. data/app/models/alberich/permission.rb +59 -0
  29. data/app/models/alberich/permission_session.rb +33 -0
  30. data/app/models/alberich/permissioned_object.rb +139 -0
  31. data/app/models/alberich/privilege.rb +29 -0
  32. data/app/models/alberich/role.rb +37 -0
  33. data/app/models/alberich/session_entity.rb +15 -0
  34. data/app/views/alberich/permissions/_form.html.haml +27 -0
  35. data/app/views/alberich/permissions/_list.html.haml +1 -0
  36. data/app/views/alberich/permissions/_objects.html.haml +38 -0
  37. data/app/views/alberich/permissions/_permissions.html.haml +45 -0
  38. data/app/views/alberich/permissions/index.html.haml +2 -0
  39. data/app/views/alberich/permissions/new.html.haml +5 -0
  40. data/app/views/alberich/permissions/show.html.haml +12 -0
  41. data/app/views/alberich/privileges/_form.html.haml +19 -0
  42. data/app/views/alberich/privileges/_list.html.haml +17 -0
  43. data/app/views/alberich/privileges/create.html.haml +2 -0
  44. data/app/views/alberich/privileges/destroy.html.haml +2 -0
  45. data/app/views/alberich/privileges/edit.html.haml +5 -0
  46. data/app/views/alberich/privileges/index.html.haml +5 -0
  47. data/app/views/alberich/privileges/new.html.haml +5 -0
  48. data/app/views/alberich/privileges/show.html.haml +12 -0
  49. data/app/views/alberich/privileges/update.html.haml +2 -0
  50. data/app/views/alberich/roles/_form.html.haml +24 -0
  51. data/app/views/alberich/roles/edit.html.haml +7 -0
  52. data/app/views/alberich/roles/index.html.haml +23 -0
  53. data/app/views/alberich/roles/new.html.haml +5 -0
  54. data/app/views/alberich/roles/show.html.haml +16 -0
  55. data/app/views/layouts/alberich/application.html.erb +14 -0
  56. data/config/initializers/haml.rb +1 -0
  57. data/config/routes.rb +17 -0
  58. data/db/migrate/20120925162242_create_alberich_roles.rb +12 -0
  59. data/db/migrate/20121022223626_create_alberich_privileges.rb +12 -0
  60. data/db/migrate/20121023051301_create_alberich_base_permission_objects.rb +9 -0
  61. data/db/migrate/20121023233648_create_alberich_permission_sessions.rb +11 -0
  62. data/db/migrate/20121027023136_create_alberich_entities.rb +34 -0
  63. data/db/migrate/20121204205213_create_alberich_session_entities.rb +12 -0
  64. data/db/migrate/20121205180518_create_alberich_permissions.rb +13 -0
  65. data/db/migrate/20130107043252_create_alberich_derived_permissions.rb +18 -0
  66. data/lib/alberich.rb +10 -0
  67. data/lib/alberich/#version.rb# +3 -0
  68. data/lib/alberich/engine.rb +10 -0
  69. data/lib/alberich/version.rb +3 -0
  70. data/lib/generators/alberich/install_generator.rb +15 -0
  71. data/lib/generators/alberich/templates/README +6 -0
  72. data/lib/generators/alberich/templates/alberich.rb +11 -0
  73. data/lib/tasks/alberich_tasks.rake +4 -0
  74. data/spec/controllers/alberich/permissions_controller_spec.rb +112 -0
  75. data/spec/controllers/alberich/privileges_controller_spec.rb +131 -0
  76. data/spec/controllers/alberich/roles_controller_spec.rb +130 -0
  77. data/spec/factories/alberich/permission.rb +51 -0
  78. data/spec/factories/alberich/permission_session.rb +7 -0
  79. data/spec/factories/alberich/privilege.rb +6 -0
  80. data/spec/factories/alberich/role.rb +103 -0
  81. data/spec/factories/child_resource.rb +14 -0
  82. data/spec/factories/child_resource.rb~ +7 -0
  83. data/spec/factories/global_resource.rb +11 -0
  84. data/spec/factories/global_resource.rb~ +25 -0
  85. data/spec/factories/parent_resource.rb +12 -0
  86. data/spec/factories/parent_resource.rb~ +7 -0
  87. data/spec/factories/standalone_resource.rb +7 -0
  88. data/spec/factories/standalone_resource.rb~ +11 -0
  89. data/spec/factories/user.rb +30 -0
  90. data/spec/factories/user_group.rb +8 -0
  91. data/spec/models/alberich/derived_permission_spec.rb +34 -0
  92. data/spec/models/alberich/entity_spec.rb +15 -0
  93. data/spec/models/alberich/permission_spec.rb +133 -0
  94. data/spec/models/alberich/privilege_spec.rb +39 -0
  95. data/spec/models/alberich/role_spec.rb +33 -0
  96. data/spec/models/alberich/session_entity_spec.rb +24 -0
  97. data/spec/spec_helper.rb +81 -0
  98. data/spec/support/routes.rb +41 -0
  99. data/test/dummy/README.rdoc +261 -0
  100. data/test/dummy/Rakefile +7 -0
  101. data/test/dummy/app/assets/javascripts/application.js +15 -0
  102. data/test/dummy/app/assets/javascripts/child_resources.js +2 -0
  103. data/test/dummy/app/assets/javascripts/global_resources.js +2 -0
  104. data/test/dummy/app/assets/javascripts/parent_resources.js +2 -0
  105. data/test/dummy/app/assets/javascripts/standalone_resources.js +2 -0
  106. data/test/dummy/app/assets/javascripts/user_groups.js +2 -0
  107. data/test/dummy/app/assets/javascripts/users.js +2 -0
  108. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  109. data/test/dummy/app/assets/stylesheets/child_resources.css +4 -0
  110. data/test/dummy/app/assets/stylesheets/global_resources.css +4 -0
  111. data/test/dummy/app/assets/stylesheets/parent_resources.css +4 -0
  112. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  113. data/test/dummy/app/assets/stylesheets/standalone_resources.css +4 -0
  114. data/test/dummy/app/assets/stylesheets/user_groups.css +4 -0
  115. data/test/dummy/app/assets/stylesheets/users.css +4 -0
  116. data/test/dummy/app/controllers/application_controller.rb +73 -0
  117. data/test/dummy/app/controllers/child_resources_controller.rb +99 -0
  118. data/test/dummy/app/controllers/child_resources_controller.rb~ +83 -0
  119. data/test/dummy/app/controllers/global_resources_controller.rb +95 -0
  120. data/test/dummy/app/controllers/global_resources_controller.rb~ +83 -0
  121. data/test/dummy/app/controllers/parent_resources_controller.rb +101 -0
  122. data/test/dummy/app/controllers/parent_resources_controller.rb~ +83 -0
  123. data/test/dummy/app/controllers/standalone_resources_controller.rb +101 -0
  124. data/test/dummy/app/controllers/standalone_resources_controller.rb~ +83 -0
  125. data/test/dummy/app/controllers/user_groups_controller.rb +131 -0
  126. data/test/dummy/app/controllers/user_sessions_controller.rb +38 -0
  127. data/test/dummy/app/controllers/users_controller.rb +87 -0
  128. data/test/dummy/app/helpers/application_helper.rb +2 -0
  129. data/test/dummy/app/helpers/child_resources_helper.rb +2 -0
  130. data/test/dummy/app/helpers/global_resources_helper.rb +2 -0
  131. data/test/dummy/app/helpers/parent_resources_helper.rb +2 -0
  132. data/test/dummy/app/helpers/standalone_resources_helper.rb +2 -0
  133. data/test/dummy/app/helpers/user_groups_helper.rb +2 -0
  134. data/test/dummy/app/helpers/users_helper.rb +2 -0
  135. data/test/dummy/app/models/child_resource.rb +25 -0
  136. data/test/dummy/app/models/child_resource.rb~ +4 -0
  137. data/test/dummy/app/models/global_resource.rb +3 -0
  138. data/test/dummy/app/models/parent_resource.rb +32 -0
  139. data/test/dummy/app/models/parent_resource.rb~ +3 -0
  140. data/test/dummy/app/models/standalone_resource.rb +22 -0
  141. data/test/dummy/app/models/standalone_resource.rb~ +3 -0
  142. data/test/dummy/app/models/user.rb +80 -0
  143. data/test/dummy/app/models/user_group.rb +12 -0
  144. data/test/dummy/app/views/child_resources/_form.html.erb +30 -0
  145. data/test/dummy/app/views/child_resources/_form.html.erb~ +29 -0
  146. data/test/dummy/app/views/child_resources/edit.html.erb +6 -0
  147. data/test/dummy/app/views/child_resources/index.html.erb +25 -0
  148. data/test/dummy/app/views/child_resources/index.html.erb~ +27 -0
  149. data/test/dummy/app/views/child_resources/new.html.erb +5 -0
  150. data/test/dummy/app/views/child_resources/show.html.erb +20 -0
  151. data/test/dummy/app/views/child_resources/show.html.erb~ +20 -0
  152. data/test/dummy/app/views/global_resources/_form.html.erb +25 -0
  153. data/test/dummy/app/views/global_resources/edit.html.erb +6 -0
  154. data/test/dummy/app/views/global_resources/index.html.erb +25 -0
  155. data/test/dummy/app/views/global_resources/new.html.erb +5 -0
  156. data/test/dummy/app/views/global_resources/show.html.erb +15 -0
  157. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  158. data/test/dummy/app/views/parent_resources/_form.html.erb +25 -0
  159. data/test/dummy/app/views/parent_resources/edit.html.erb +6 -0
  160. data/test/dummy/app/views/parent_resources/index.html.erb +25 -0
  161. data/test/dummy/app/views/parent_resources/index.html.erb~ +25 -0
  162. data/test/dummy/app/views/parent_resources/new.html.erb +5 -0
  163. data/test/dummy/app/views/parent_resources/show.html.erb +44 -0
  164. data/test/dummy/app/views/parent_resources/show.html.erb~ +15 -0
  165. data/test/dummy/app/views/standalone_resources/_form.html.erb +25 -0
  166. data/test/dummy/app/views/standalone_resources/edit.html.erb +6 -0
  167. data/test/dummy/app/views/standalone_resources/index.html.erb +25 -0
  168. data/test/dummy/app/views/standalone_resources/new.html.erb +5 -0
  169. data/test/dummy/app/views/standalone_resources/show.html.erb +15 -0
  170. data/test/dummy/app/views/user_groups/_form.html.haml +9 -0
  171. data/test/dummy/app/views/user_groups/add_members.html.haml +18 -0
  172. data/test/dummy/app/views/user_groups/edit.html.haml +13 -0
  173. data/test/dummy/app/views/user_groups/index.html.haml +20 -0
  174. data/test/dummy/app/views/user_groups/new.html.haml +11 -0
  175. data/test/dummy/app/views/user_groups/show.html.haml +42 -0
  176. data/test/dummy/app/views/user_sessions/new.html.haml +26 -0
  177. data/test/dummy/app/views/users/_form.html.haml +25 -0
  178. data/test/dummy/app/views/users/edit.html.haml +14 -0
  179. data/test/dummy/app/views/users/index.html.haml +26 -0
  180. data/test/dummy/app/views/users/new.html.haml +11 -0
  181. data/test/dummy/app/views/users/show.html.haml +56 -0
  182. data/test/dummy/config.ru +4 -0
  183. data/test/dummy/config/application.rb +59 -0
  184. data/test/dummy/config/boot.rb +10 -0
  185. data/test/dummy/config/database.yml +25 -0
  186. data/test/dummy/config/environment.rb +5 -0
  187. data/test/dummy/config/environments/development.rb +37 -0
  188. data/test/dummy/config/environments/production.rb +67 -0
  189. data/test/dummy/config/environments/test.rb +37 -0
  190. data/test/dummy/config/initializers/alberich.rb +13 -0
  191. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  192. data/test/dummy/config/initializers/inflections.rb +15 -0
  193. data/test/dummy/config/initializers/mime_types.rb +5 -0
  194. data/test/dummy/config/initializers/secret_token.rb +7 -0
  195. data/test/dummy/config/initializers/session_store.rb +8 -0
  196. data/test/dummy/config/initializers/warden.rb +79 -0
  197. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  198. data/test/dummy/config/locales/en.yml +5 -0
  199. data/test/dummy/config/routes.rb +33 -0
  200. data/test/dummy/db/migrate/20120801010101_create_users.rb +20 -0
  201. data/test/dummy/db/migrate/20121121054319_create_user_groups.rb +16 -0
  202. data/test/dummy/db/migrate/20130220160811_create_global_resources.rb +10 -0
  203. data/test/dummy/db/migrate/20130220175258_create_standalone_resources.rb +10 -0
  204. data/test/dummy/db/migrate/20130226145412_create_parent_resources.rb +10 -0
  205. data/test/dummy/db/migrate/20130226151256_create_child_resources.rb +12 -0
  206. data/test/dummy/db/migrate/20130226151256_create_child_resources.rb~ +12 -0
  207. data/test/dummy/db/schema.rb +151 -0
  208. data/test/dummy/db/seeds.rb +65 -0
  209. data/test/dummy/lib/password.rb +58 -0
  210. data/test/dummy/public/404.html +26 -0
  211. data/test/dummy/public/422.html +26 -0
  212. data/test/dummy/public/500.html +25 -0
  213. data/test/dummy/public/favicon.ico +0 -0
  214. data/test/dummy/script/rails +6 -0
  215. data/test/dummy/test/fixtures/child_resources.yml +11 -0
  216. data/test/dummy/test/fixtures/global_resources.yml +9 -0
  217. data/test/dummy/test/fixtures/parent_resources.yml +9 -0
  218. data/test/dummy/test/fixtures/standalone_resources.yml +9 -0
  219. data/test/dummy/test/fixtures/user_groups.yml +9 -0
  220. data/test/dummy/test/fixtures/users.yml +37 -0
  221. data/test/dummy/test/functional/child_resources_controller_test.rb +49 -0
  222. data/test/dummy/test/functional/global_resources_controller_test.rb +49 -0
  223. data/test/dummy/test/functional/parent_resources_controller_test.rb +49 -0
  224. data/test/dummy/test/functional/standalone_resources_controller_test.rb +49 -0
  225. data/test/dummy/test/functional/user_groups_controller_test.rb +49 -0
  226. data/test/dummy/test/functional/users_controller_test.rb +39 -0
  227. data/test/dummy/test/unit/child_resource_test.rb +7 -0
  228. data/test/dummy/test/unit/global_resource_test.rb +7 -0
  229. data/test/dummy/test/unit/helpers/child_resources_helper_test.rb +4 -0
  230. data/test/dummy/test/unit/helpers/global_resources_helper_test.rb +4 -0
  231. data/test/dummy/test/unit/helpers/parent_resources_helper_test.rb +4 -0
  232. data/test/dummy/test/unit/helpers/standalone_resources_helper_test.rb +4 -0
  233. data/test/dummy/test/unit/helpers/user_groups_helper_test.rb +4 -0
  234. data/test/dummy/test/unit/helpers/users_helper_test.rb +4 -0
  235. data/test/dummy/test/unit/parent_resource_test.rb +7 -0
  236. data/test/dummy/test/unit/standalone_resource_test.rb +7 -0
  237. data/test/dummy/test/unit/user_group_test.rb +7 -0
  238. data/test/dummy/test/unit/user_test.rb +7 -0
  239. data/test/integration/alberich/permission_test.rb +7 -0
  240. data/test/integration/alberich/privilege_test.rb +7 -0
  241. data/test/integration/alberich/role_test.rb +7 -0
  242. metadata +639 -0
@@ -0,0 +1,83 @@
1
+ class GlobalResourcesController < ApplicationController
2
+ # GET /global_resources
3
+ # GET /global_resources.json
4
+ def index
5
+ @global_resources = GlobalResource.all
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.json { render json: @global_resources }
10
+ end
11
+ end
12
+
13
+ # GET /global_resources/1
14
+ # GET /global_resources/1.json
15
+ def show
16
+ @global_resource = GlobalResource.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.json { render json: @global_resource }
21
+ end
22
+ end
23
+
24
+ # GET /global_resources/new
25
+ # GET /global_resources/new.json
26
+ def new
27
+ @global_resource = GlobalResource.new
28
+
29
+ respond_to do |format|
30
+ format.html # new.html.erb
31
+ format.json { render json: @global_resource }
32
+ end
33
+ end
34
+
35
+ # GET /global_resources/1/edit
36
+ def edit
37
+ @global_resource = GlobalResource.find(params[:id])
38
+ end
39
+
40
+ # POST /global_resources
41
+ # POST /global_resources.json
42
+ def create
43
+ @global_resource = GlobalResource.new(params[:global_resource])
44
+
45
+ respond_to do |format|
46
+ if @global_resource.save
47
+ format.html { redirect_to @global_resource, notice: 'Global resource was successfully created.' }
48
+ format.json { render json: @global_resource, status: :created, location: @global_resource }
49
+ else
50
+ format.html { render action: "new" }
51
+ format.json { render json: @global_resource.errors, status: :unprocessable_entity }
52
+ end
53
+ end
54
+ end
55
+
56
+ # PUT /global_resources/1
57
+ # PUT /global_resources/1.json
58
+ def update
59
+ @global_resource = GlobalResource.find(params[:id])
60
+
61
+ respond_to do |format|
62
+ if @global_resource.update_attributes(params[:global_resource])
63
+ format.html { redirect_to @global_resource, notice: 'Global resource was successfully updated.' }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render action: "edit" }
67
+ format.json { render json: @global_resource.errors, status: :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ # DELETE /global_resources/1
73
+ # DELETE /global_resources/1.json
74
+ def destroy
75
+ @global_resource = GlobalResource.find(params[:id])
76
+ @global_resource.destroy
77
+
78
+ respond_to do |format|
79
+ format.html { redirect_to global_resources_url }
80
+ format.json { head :no_content }
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,101 @@
1
+ class ParentResourcesController < ApplicationController
2
+ # GET /parent_resources
3
+ # GET /parent_resources.json
4
+ def index
5
+ #filter on view permission
6
+ @parent_resources = ParentResource.
7
+ list_for_user(current_session, current_user, Alberich::Privilege::VIEW)
8
+
9
+ respond_to do |format|
10
+ format.html # index.html.erb
11
+ format.json { render json: @parent_resources }
12
+ end
13
+ end
14
+
15
+ # GET /parent_resources/1
16
+ # GET /parent_resources/1.json
17
+ def show
18
+ @parent_resource = ParentResource.find(params[:id])
19
+ # require view permissions on this object
20
+ require_privilege(Alberich::Privilege::VIEW, @parent_resource)
21
+ @child_resources = @parent_resource.child_resources.
22
+ list_for_user(current_session, current_user, Alberich::Privilege::VIEW)
23
+
24
+ respond_to do |format|
25
+ format.html # show.html.erb
26
+ format.json { render json: @parent_resource }
27
+ end
28
+ end
29
+
30
+ # GET /parent_resources/new
31
+ # GET /parent_resources/new.json
32
+ def new
33
+ # require global create permissions for this object type
34
+ require_privilege(Alberich::Privilege::CREATE, ParentResource)
35
+ @parent_resource = ParentResource.new
36
+
37
+ respond_to do |format|
38
+ format.html # new.html.erb
39
+ format.json { render json: @parent_resource }
40
+ end
41
+ end
42
+
43
+ # GET /parent_resources/1/edit
44
+ def edit
45
+ @parent_resource = ParentResource.find(params[:id])
46
+ # require modify permissions for this object
47
+ require_privilege(Alberich::Privilege::MODIFY, @parent_resource)
48
+ end
49
+
50
+ # POST /parent_resources
51
+ # POST /parent_resources.json
52
+ def create
53
+ # require global create permissions for this object type
54
+ require_privilege(Alberich::Privilege::CREATE, ParentResource)
55
+
56
+ @parent_resource = ParentResource.new(params[:parent_resource])
57
+
58
+ respond_to do |format|
59
+ if @parent_resource.save
60
+ @parent_resource.assign_owner_roles(current_user)
61
+ format.html { redirect_to @parent_resource, notice: 'Parent resource was successfully created.' }
62
+ format.json { render json: @parent_resource, status: :created, location: @parent_resource }
63
+ else
64
+ format.html { render action: "new" }
65
+ format.json { render json: @parent_resource.errors, status: :unprocessable_entity }
66
+ end
67
+ end
68
+ end
69
+
70
+ # PUT /parent_resources/1
71
+ # PUT /parent_resources/1.json
72
+ def update
73
+ @parent_resource = ParentResource.find(params[:id])
74
+ # require modify permissions for this object
75
+ require_privilege(Alberich::Privilege::MODIFY, @parent_resource)
76
+
77
+ respond_to do |format|
78
+ if @parent_resource.update_attributes(params[:parent_resource])
79
+ format.html { redirect_to @parent_resource, notice: 'Parent resource was successfully updated.' }
80
+ format.json { head :no_content }
81
+ else
82
+ format.html { render action: "edit" }
83
+ format.json { render json: @parent_resource.errors, status: :unprocessable_entity }
84
+ end
85
+ end
86
+ end
87
+
88
+ # DELETE /parent_resources/1
89
+ # DELETE /parent_resources/1.json
90
+ def destroy
91
+ @parent_resource = ParentResource.find(params[:id])
92
+ # require modify permissions for this object
93
+ require_privilege(Alberich::Privilege::MODIFY, @parent_resource)
94
+ @parent_resource.destroy
95
+
96
+ respond_to do |format|
97
+ format.html { redirect_to parent_resources_url }
98
+ format.json { head :no_content }
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,83 @@
1
+ class ParentResourcesController < ApplicationController
2
+ # GET /parent_resources
3
+ # GET /parent_resources.json
4
+ def index
5
+ @parent_resources = ParentResource.all
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.json { render json: @parent_resources }
10
+ end
11
+ end
12
+
13
+ # GET /parent_resources/1
14
+ # GET /parent_resources/1.json
15
+ def show
16
+ @parent_resource = ParentResource.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.json { render json: @parent_resource }
21
+ end
22
+ end
23
+
24
+ # GET /parent_resources/new
25
+ # GET /parent_resources/new.json
26
+ def new
27
+ @parent_resource = ParentResource.new
28
+
29
+ respond_to do |format|
30
+ format.html # new.html.erb
31
+ format.json { render json: @parent_resource }
32
+ end
33
+ end
34
+
35
+ # GET /parent_resources/1/edit
36
+ def edit
37
+ @parent_resource = ParentResource.find(params[:id])
38
+ end
39
+
40
+ # POST /parent_resources
41
+ # POST /parent_resources.json
42
+ def create
43
+ @parent_resource = ParentResource.new(params[:parent_resource])
44
+
45
+ respond_to do |format|
46
+ if @parent_resource.save
47
+ format.html { redirect_to @parent_resource, notice: 'Parent resource was successfully created.' }
48
+ format.json { render json: @parent_resource, status: :created, location: @parent_resource }
49
+ else
50
+ format.html { render action: "new" }
51
+ format.json { render json: @parent_resource.errors, status: :unprocessable_entity }
52
+ end
53
+ end
54
+ end
55
+
56
+ # PUT /parent_resources/1
57
+ # PUT /parent_resources/1.json
58
+ def update
59
+ @parent_resource = ParentResource.find(params[:id])
60
+
61
+ respond_to do |format|
62
+ if @parent_resource.update_attributes(params[:parent_resource])
63
+ format.html { redirect_to @parent_resource, notice: 'Parent resource was successfully updated.' }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render action: "edit" }
67
+ format.json { render json: @parent_resource.errors, status: :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ # DELETE /parent_resources/1
73
+ # DELETE /parent_resources/1.json
74
+ def destroy
75
+ @parent_resource = ParentResource.find(params[:id])
76
+ @parent_resource.destroy
77
+
78
+ respond_to do |format|
79
+ format.html { redirect_to parent_resources_url }
80
+ format.json { head :no_content }
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,101 @@
1
+ class StandaloneResourcesController < ApplicationController
2
+ # GET /standalone_resources
3
+ # GET /standalone_resources.json
4
+ def index
5
+ #filter on view permission
6
+ @standalone_resources = StandaloneResource.
7
+ list_for_user(current_session, current_user, Alberich::Privilege::VIEW)
8
+
9
+ respond_to do |format|
10
+ format.html # index.html.erb
11
+ format.json { render json: @standalone_resources }
12
+ end
13
+ end
14
+
15
+ # GET /standalone_resources/1
16
+ # GET /standalone_resources/1.json
17
+ def show
18
+ @standalone_resource = StandaloneResource.find(params[:id])
19
+ # require view permissions on this object
20
+ require_privilege(Alberich::Privilege::VIEW, @standalone_resource)
21
+
22
+ respond_to do |format|
23
+ format.html # show.html.erb
24
+ format.json { render json: @standalone_resource }
25
+ end
26
+ end
27
+
28
+ # GET /standalone_resources/new
29
+ # GET /standalone_resources/new.json
30
+ def new
31
+ # require global create permissions for this object type
32
+ require_privilege(Alberich::Privilege::CREATE, StandaloneResource)
33
+
34
+ @standalone_resource = StandaloneResource.new
35
+
36
+ respond_to do |format|
37
+ format.html # new.html.erb
38
+ format.json { render json: @standalone_resource }
39
+ end
40
+ end
41
+
42
+ # GET /standalone_resources/1/edit
43
+ def edit
44
+ @standalone_resource = StandaloneResource.find(params[:id])
45
+ # require modify permissions for this object
46
+ require_privilege(Alberich::Privilege::MODIFY, @standalone_resource)
47
+ end
48
+
49
+ # POST /standalone_resources
50
+ # POST /standalone_resources.json
51
+ def create
52
+ # require global create permissions for this object type
53
+ require_privilege(Alberich::Privilege::CREATE, StandaloneResource)
54
+
55
+ @standalone_resource = StandaloneResource.new(params[:standalone_resource])
56
+
57
+ respond_to do |format|
58
+ if @standalone_resource.save
59
+ @standalone_resource.assign_owner_roles(current_user)
60
+ format.html { redirect_to @standalone_resource, notice: 'Standalone resource was successfully created.' }
61
+ format.json { render json: @standalone_resource, status: :created, location: @standalone_resource }
62
+ else
63
+ format.html { render action: "new" }
64
+ format.json { render json: @standalone_resource.errors, status: :unprocessable_entity }
65
+ end
66
+ end
67
+ end
68
+
69
+ # PUT /standalone_resources/1
70
+ # PUT /standalone_resources/1.json
71
+ def update
72
+ @standalone_resource = StandaloneResource.find(params[:id])
73
+ # require modify permissions for this object
74
+ require_privilege(Alberich::Privilege::MODIFY, @standalone_resource)
75
+
76
+ respond_to do |format|
77
+ if @standalone_resource.update_attributes(params[:standalone_resource])
78
+ format.html { redirect_to @standalone_resource, notice: 'Standalone resource was successfully updated.' }
79
+ format.json { head :no_content }
80
+ else
81
+ format.html { render action: "edit" }
82
+ format.json { render json: @standalone_resource.errors, status: :unprocessable_entity }
83
+ end
84
+ end
85
+ end
86
+
87
+ # DELETE /standalone_resources/1
88
+ # DELETE /standalone_resources/1.json
89
+ def destroy
90
+ @standalone_resource = StandaloneResource.find(params[:id])
91
+ # require modify permissions for this object
92
+ require_privilege(Alberich::Privilege::MODIFY, @standalone_resource)
93
+
94
+ @standalone_resource.destroy
95
+
96
+ respond_to do |format|
97
+ format.html { redirect_to standalone_resources_url }
98
+ format.json { head :no_content }
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,83 @@
1
+ class StandaloneResourcesController < ApplicationController
2
+ # GET /standalone_resources
3
+ # GET /standalone_resources.json
4
+ def index
5
+ @standalone_resources = StandaloneResource.all
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.json { render json: @standalone_resources }
10
+ end
11
+ end
12
+
13
+ # GET /standalone_resources/1
14
+ # GET /standalone_resources/1.json
15
+ def show
16
+ @standalone_resource = StandaloneResource.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.json { render json: @standalone_resource }
21
+ end
22
+ end
23
+
24
+ # GET /standalone_resources/new
25
+ # GET /standalone_resources/new.json
26
+ def new
27
+ @standalone_resource = StandaloneResource.new
28
+
29
+ respond_to do |format|
30
+ format.html # new.html.erb
31
+ format.json { render json: @standalone_resource }
32
+ end
33
+ end
34
+
35
+ # GET /standalone_resources/1/edit
36
+ def edit
37
+ @standalone_resource = StandaloneResource.find(params[:id])
38
+ end
39
+
40
+ # POST /standalone_resources
41
+ # POST /standalone_resources.json
42
+ def create
43
+ @standalone_resource = StandaloneResource.new(params[:standalone_resource])
44
+
45
+ respond_to do |format|
46
+ if @standalone_resource.save
47
+ format.html { redirect_to @standalone_resource, notice: 'Standalone resource was successfully created.' }
48
+ format.json { render json: @standalone_resource, status: :created, location: @standalone_resource }
49
+ else
50
+ format.html { render action: "new" }
51
+ format.json { render json: @standalone_resource.errors, status: :unprocessable_entity }
52
+ end
53
+ end
54
+ end
55
+
56
+ # PUT /standalone_resources/1
57
+ # PUT /standalone_resources/1.json
58
+ def update
59
+ @standalone_resource = StandaloneResource.find(params[:id])
60
+
61
+ respond_to do |format|
62
+ if @standalone_resource.update_attributes(params[:standalone_resource])
63
+ format.html { redirect_to @standalone_resource, notice: 'Standalone resource was successfully updated.' }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render action: "edit" }
67
+ format.json { render json: @standalone_resource.errors, status: :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ # DELETE /standalone_resources/1
73
+ # DELETE /standalone_resources/1.json
74
+ def destroy
75
+ @standalone_resource = StandaloneResource.find(params[:id])
76
+ @standalone_resource.destroy
77
+
78
+ respond_to do |format|
79
+ format.html { redirect_to standalone_resources_url }
80
+ format.json { head :no_content }
81
+ end
82
+ end
83
+ end