aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stif
diff options
context:
space:
mode:
authorZog2017-12-18 11:53:16 +0100
committerZog2017-12-19 19:12:09 +0100
commit818bacf718594441052820ea0e7b33b9491a5b71 (patch)
treebff0e695e24186782c20d0af8a805bb5558a4414 /lib/stif
parentdb4c94186ce8a5b52cc5c2b54fe84899729cbfa6 (diff)
downloadchouette-core-818bacf718594441052820ea0e7b33b9491a5b71.tar.bz2
Refs #5325@0.5h; Use policies for calendar sharing
Use policies to determine if a user is allowed to share a calendar, instead of a hardcoded string
Diffstat (limited to 'lib/stif')
-rw-r--r--lib/stif/permission_translator.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/stif/permission_translator.rb b/lib/stif/permission_translator.rb
index 2d267bc7b..4a1c3ec8c 100644
--- a/lib/stif/permission_translator.rb
+++ b/lib/stif/permission_translator.rb
@@ -1,11 +1,11 @@
module Stif
module PermissionTranslator extend self
- def translate(sso_extra_permissions)
- sso_extra_permissions
- .sort
+ def translate(sso_extra_permissions, organisation=nil)
+ permissions = sso_extra_permissions.sort
.flat_map(&method(:extra_permission_translation))
- .uniq
+ permissions += extra_organisation_permissions(organisation)
+ permissions.uniq
end
private
@@ -49,5 +49,10 @@ module Stif
"boiv:edit-offer" => all_destructive_permissions + %w{sessions.create},
}
end
+
+ def extra_organisation_permissions organisation
+ return %w(calendars.share) if organisation&.name&.downcase == "stif"
+ []
+ end
end
end