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,25 @@
1
+ <%= form_for(@standalone_resource) do |f| %>
2
+ <% if @standalone_resource.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(@standalone_resource.errors.count, "error") %> prohibited this standalone_resource from being saved:</h2>
5
+
6
+ <ul>
7
+ <% @standalone_resource.errors.full_messages.each do |msg| %>
8
+ <li><%= msg %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="field">
15
+ <%= f.label :name %><br />
16
+ <%= f.text_field :name %>
17
+ </div>
18
+ <div class="field">
19
+ <%= f.label :description %><br />
20
+ <%= f.text_field :description %>
21
+ </div>
22
+ <div class="actions">
23
+ <%= f.submit %>
24
+ </div>
25
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing standalone_resource</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @standalone_resource %> |
6
+ <%= link_to 'Back', standalone_resources_path %>
@@ -0,0 +1,25 @@
1
+ <h1>Listing standalone_resources</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Name</th>
6
+ <th>Description</th>
7
+ <th></th>
8
+ <th></th>
9
+ <th></th>
10
+ </tr>
11
+
12
+ <% @standalone_resources.each do |standalone_resource| %>
13
+ <tr>
14
+ <td><%= standalone_resource.name %></td>
15
+ <td><%= standalone_resource.description %></td>
16
+ <td><%= link_to 'Show', standalone_resource %></td>
17
+ <td><%= link_to 'Edit', edit_standalone_resource_path(standalone_resource) if check_privilege(Alberich::Privilege::MODIFY, standalone_resource)%></td>
18
+ <td><%= link_to 'Destroy', standalone_resource, method: :delete, data: { confirm: 'Are you sure?' } if check_privilege(Alberich::Privilege::MODIFY, standalone_resource)%></td>
19
+ </tr>
20
+ <% end %>
21
+ </table>
22
+
23
+ <br />
24
+
25
+ <%= link_to 'New Standalone resource', new_standalone_resource_path if check_privilege(Alberich::Privilege::CREATE, StandaloneResource)%>
@@ -0,0 +1,5 @@
1
+ <h1>New standalone_resource</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', standalone_resources_path %>
@@ -0,0 +1,15 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <b>Name:</b>
5
+ <%= @standalone_resource.name %>
6
+ </p>
7
+
8
+ <p>
9
+ <b>Description:</b>
10
+ <%= @standalone_resource.description %>
11
+ </p>
12
+
13
+
14
+ <%= link_to 'Edit', edit_standalone_resource_path(@standalone_resource) if check_privilege(Alberich::Privilege::MODIFY, @standalone_resource)%> |
15
+ <%= link_to 'Back', standalone_resources_path %>
@@ -0,0 +1,9 @@
1
+ .field
2
+ = form.label :name, :class => 'em'
3
+ .input
4
+ = form.text_field :name, :class => "em long"
5
+ .field
6
+ = form.label :description, :class => 'em'
7
+ .input
8
+ = form.text_field :description, :class => "em long"
9
+ = form.submit
@@ -0,0 +1,18 @@
1
+ %h1= "Add member to #{@user_group.name}"
2
+ %table
3
+ %tr
4
+ %th username
5
+ %th last name
6
+ %th first name
7
+ %th email
8
+ %th
9
+
10
+ - @users.each do |user|
11
+ %tr
12
+ %th= user.username
13
+ %th= user.last_name
14
+ %th= user.first_name
15
+ %th= user.email
16
+ %th= link_to 'Add', add_member_user_group_path(@user_group, :user_id=>user)
17
+
18
+ = link_to 'return to group', user_group_path(@user_group)
@@ -0,0 +1,13 @@
1
+ %header.page-header
2
+ .obj_actions
3
+ .return_to
4
+ Return to
5
+ = link_to "Show", @user_group
6
+ |
7
+ = link_to "user_groups", user_groups_path
8
+ %h1.users Editing user group
9
+
10
+ %section.content-section.user
11
+ .content
12
+ = form_for @user_group do |f|
13
+ = render :partial => "form", :locals => { :form => f }
@@ -0,0 +1,20 @@
1
+ %h1 User Groups
2
+
3
+ %table
4
+ %tr
5
+ %th Name
6
+ %th Description
7
+ %th
8
+ %th
9
+ %th
10
+
11
+ - @user_groups.each do |user_group|
12
+ %tr
13
+ %td= user_group.name
14
+ %td= user_group.description
15
+ %td= link_to 'Show', user_group
16
+ %td= link_to 'Edit', edit_user_group_path(user_group)
17
+ %td= link_to 'Destroy', user_group, method: :delete, data: { confirm: 'Are you sure?' }
18
+ %br
19
+
20
+ = link_to 'New User group', new_user_group_path
@@ -0,0 +1,11 @@
1
+ %header.page-header
2
+ .obj_actions
3
+ .return_to
4
+ Return to
5
+ = link_to "user_groups", user_groups_path
6
+ %h1.users New user group
7
+
8
+ %section.content-section.user
9
+ .content
10
+ = form_for @user_group do |f|
11
+ = render :partial => "form", :locals => { :form => f }
@@ -0,0 +1,42 @@
1
+ %p#notice= notice
2
+
3
+ %p
4
+ %b Name:
5
+ = @user_group.name
6
+
7
+ %p
8
+ %b Description:
9
+ = @user_group.description
10
+
11
+ %p Members
12
+
13
+ %table
14
+ %tr
15
+ %th username
16
+ %th last name
17
+ %th first name
18
+ %th email
19
+ %th
20
+ %th
21
+
22
+ - @user_group.members.each do |user|
23
+ %tr
24
+ %th= user.username
25
+ %th= user.last_name
26
+ %th= user.first_name
27
+ %th= user.email
28
+ %th= link_to 'Show', user
29
+ %th= link_to 'Remove', remove_member_user_group_path(@user_group, :user_id=>user), method: :delete, data: { confirm: 'Are you sure?' }
30
+ %br
31
+
32
+ = link_to 'Add Member', add_members_user_group_path
33
+
34
+ %section.content-section.permissions
35
+ %header
36
+ %h2.permissions Permissions
37
+ .content
38
+ = render :partial => 'alberich/permissions/objects'
39
+
40
+ = link_to 'Edit', edit_user_group_path(@user_group)
41
+ |
42
+ = link_to 'Back', user_groups_path
@@ -0,0 +1,26 @@
1
+ = content_for :title do
2
+ Alberich test application
3
+
4
+ = content_for :notifications do
5
+ -if flash[:warning]
6
+ %div.error
7
+ %p.text= flash[:warning]
8
+
9
+ = content_for(:content) do
10
+ %h1 Log in
11
+ .card
12
+ = form_tag user_session_path, :id => 'login_form', :method => "post" do
13
+ %fieldset.primary
14
+ = label_tag :username, "username"
15
+ = text_field_tag :username, params[:username], :class => 'username', :id => "username"
16
+ %fieldset.primary
17
+ = label_tag :password, "password"
18
+ = password_field_tag :password, params[:password], :class => 'password', :id => 'password-input'
19
+ = submit_tag "Log in", :class => "button fr", :id => 'login_btn'
20
+ .spinner
21
+
22
+ %div.container
23
+ #notifications
24
+ = yield :notifications
25
+ %section
26
+ = yield :content
@@ -0,0 +1,25 @@
1
+ .field
2
+ = form.label :first_name, :class => 'em'
3
+ .input
4
+ = form.text_field :first_name, :class => "em long"
5
+ .field
6
+ = form.label :last_name, :class => 'em'
7
+ .input
8
+ = form.text_field :last_name, :class => "em long"
9
+ .field
10
+ = form.label :email, :class => 'em'
11
+ .input
12
+ = form.text_field :email, :class => "em long"
13
+ .field
14
+ = form.label :username, :class => 'em'
15
+ .input
16
+ = form.text_field :username, :class => "em long"
17
+ .field
18
+ = form.label :password, :class => 'em'
19
+ .input
20
+ = form.password_field :password, :class => "em long"
21
+ .field
22
+ = form.label :password_confirmation, :class => 'em'
23
+ .input
24
+ = form.password_field :password_confirmation, :class => "em long"
25
+ = form.submit
@@ -0,0 +1,14 @@
1
+ %header.page-header
2
+ .obj_actions
3
+ .return_to
4
+ Return to
5
+ = link_to "users", users_path
6
+ /- if check_privilege(Privilege::MODIFY, User)
7
+ / %h1.users= @title
8
+ /- else
9
+ %h1.users Edit account
10
+
11
+ %section.content-section.user
12
+ .content
13
+ = form_for @user do |f|
14
+ = render :partial => "form", :locals => { :form => f }
@@ -0,0 +1,26 @@
1
+ %h1 Users
2
+
3
+ %table
4
+ %tr
5
+ %th username
6
+ %th last name
7
+ %th first name
8
+ %th email
9
+ %th
10
+ %th
11
+ %th
12
+
13
+ - @users.each do |user|
14
+ %tr
15
+ %th= user.username
16
+ %th= user.last_name
17
+ %th= user.first_name
18
+ %th= user.email
19
+ %th= link_to 'Show', user
20
+ %th= link_to 'Edit', edit_user_path(user)
21
+ %th= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' }
22
+
23
+ %br
24
+
25
+ = link_to 'New User', new_user_path
26
+
@@ -0,0 +1,11 @@
1
+ %header.page-header
2
+ .obj_actions
3
+ .return_to
4
+ Return to
5
+ = link_to "users", users_path
6
+ %h1.users Grant Access
7
+
8
+ %section.content-section.user
9
+ .content
10
+ = form_for @user do |f|
11
+ = render :partial => "form", :locals => { :form => f }
@@ -0,0 +1,56 @@
1
+ %header.page-header
2
+ .obj_actions
3
+ / - if check_privilege(Privilege::VIEW, User)
4
+ / .return_to
5
+ / =t'return_to'
6
+ / = link_to "Users", users_path
7
+
8
+ %section.content-section.user
9
+ .content
10
+ #user_card.user_stats_card
11
+ %header.user-card-header
12
+ %h2= @user.username
13
+ %dl
14
+ %dt user Email
15
+ %dd= @user.email
16
+ %dt username
17
+ %dd= @user.username
18
+ .button-group
19
+ = link_to "Edit", edit_user_path(@user), :class => 'button'
20
+ - unless @user.id == current_user.id
21
+ = link_to "Delete", user_path(@user), :method => :delete, :confirm => "Are you sure you want to delete this user?", :class => "button danger"
22
+ %dl.user_stats
23
+ %ul
24
+ %div
25
+ %li
26
+ %dt Create time
27
+ %dd= l(@user.created_at.to_date, :format => :long) if @user.created_at
28
+ %li
29
+ %dt Number of logins
30
+ %dd= @user.login_count
31
+ %li
32
+ %dt Last login
33
+ %dd= l(@user.last_login_at, :format => :long) if @user.last_login_at
34
+ %div
35
+ %li
36
+ %dt Last updated
37
+ %dd= l(@user.updated_at, :format => :long) if @user.updated_at
38
+ %li
39
+ %dt Failed logins
40
+ %dd= @user.failed_login_count
41
+ %li
42
+ %dt Last Login IP
43
+ %dd= @user.last_login_ip
44
+
45
+ %section.content-section.groups
46
+ %header
47
+ %h2.groups=t'users.groups'
48
+ .content
49
+ - @user.user_groups.each do |user_group|
50
+ %tr{:class => cycle('nostripe','stripe')}
51
+ %td= link_to user_group.name, user_group_path(user_group)
52
+ %section.content-section.permissions
53
+ %header
54
+ %h2.permissions Permissions
55
+ .content
56
+ = render :partial => 'alberich/permissions/objects'
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Dummy::Application
@@ -0,0 +1,59 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails/all'
4
+
5
+ Bundler.require
6
+ require "alberich"
7
+
8
+ module Dummy
9
+ class Application < Rails::Application
10
+ # Settings in config/environments/* take precedence over those specified here.
11
+ # Application configuration should go into files in config/initializers
12
+ # -- all .rb files in that directory are automatically loaded.
13
+
14
+ # Custom directories with classes and modules you want to be autoloadable.
15
+ # config.autoload_paths += %W(#{config.root}/extras)
16
+
17
+ # Only load the plugins named here, in the order given (default is alphabetical).
18
+ # :all can be used as a placeholder for all plugins not explicitly named.
19
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
20
+
21
+ # Activate observers that should always be running.
22
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
23
+
24
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
25
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
26
+ # config.time_zone = 'Central Time (US & Canada)'
27
+
28
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
29
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
30
+ # config.i18n.default_locale = :de
31
+
32
+ # Configure the default encoding used in templates for Ruby 1.9.
33
+ config.encoding = "utf-8"
34
+
35
+ # Configure sensitive parameters which will be filtered from the log file.
36
+ config.filter_parameters += [:password]
37
+
38
+ # Enable escaping HTML in JSON.
39
+ config.active_support.escape_html_entities_in_json = true
40
+
41
+ # Use SQL instead of Active Record's schema dumper when creating the database.
42
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
43
+ # like if you have constraints or database-specific column types
44
+ # config.active_record.schema_format = :sql
45
+
46
+ # Enforce whitelist mode for mass assignment.
47
+ # This will create an empty whitelist of attributes available for mass-assignment for all models
48
+ # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
49
+ # parameters by using an attr_accessible or attr_protected declaration.
50
+ config.active_record.whitelist_attributes = true
51
+
52
+ # Enable the asset pipeline
53
+ config.assets.enabled = true
54
+
55
+ # Version of your assets, change this if you want to expire all your assets
56
+ config.assets.version = '1.0'
57
+ end
58
+ end
59
+
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ gemfile = File.expand_path('../../../../Gemfile', __FILE__)
3
+
4
+ if File.exist?(gemfile)
5
+ ENV['BUNDLE_GEMFILE'] = gemfile
6
+ require 'bundler'
7
+ Bundler.setup
8
+ end
9
+
10
+ $:.unshift File.expand_path('../../../../lib', __FILE__)