diff options
| author | Alban Peignier | 2017-12-20 09:18:18 +0100 |
|---|---|---|
| committer | GitHub | 2017-12-20 09:18:18 +0100 |
| commit | 0a5c1fd25403c327593a5cbe10c7c58be6128c89 (patch) | |
| tree | 91a8aaf68a3b6291066c03b70ee3d315ce746897 /app | |
| parent | e7bece2f871d51ad71ee2ee258afd985bf8d8485 (diff) | |
| parent | 49a515b474cf64b02f6dfc7a449f3a45aa21e7ca (diff) | |
| download | chouette-core-0a5c1fd25403c327593a5cbe10c7c58be6128c89.tar.bz2 | |
Merge pull request #155 from af83/5325-use-policies-for-calendars-sharing
Use policies for calendar sharing. Refs #5325
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/user.rb | 2 | ||||
| -rw-r--r-- | app/policies/calendar_policy.rb | 19 |
2 files changed, 9 insertions, 12 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 37d35209a..1342f60ed 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -36,7 +36,7 @@ class User < ActiveRecord::Base self.name = extra[:full_name] self.email = extra[:email] self.organisation = Organisation.sync_update extra[:organisation_code], extra[:organisation_name], extra[:functional_scope] - self.permissions = Stif::PermissionTranslator.translate(extra[:permissions]) + self.permissions = Stif::PermissionTranslator.translate(extra[:permissions], self.organisation) end def self.portail_api_request diff --git a/app/policies/calendar_policy.rb b/app/policies/calendar_policy.rb index 074c41d8d..c2da8c924 100644 --- a/app/policies/calendar_policy.rb +++ b/app/policies/calendar_policy.rb @@ -5,18 +5,15 @@ class CalendarPolicy < ApplicationPolicy end end - def create? - !archived? && user.has_permission?('calendars.create') - end - def destroy? - !archived? & organisation_match? && user.has_permission?('calendars.destroy') - end - def update? - !archived? && organisation_match? && user.has_permission?('calendars.update') + def create? + user.has_permission?('calendars.create') end + def destroy?; instance_permission("destroy") end + def update?; instance_permission("update") end + def share?; instance_permission("share") end - def share? - user.organisation.name == 'STIF' # FIXME + private + def instance_permission permission + organisation_match? && user.has_permission?("calendars.#{permission}") end - end |
