diff options
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Sanitizer.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Sanitizer.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Sanitizer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Sanitizer.java index 52a32288..8ce4df5c 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Sanitizer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Sanitizer.java @@ -2,6 +2,8 @@ package org.openslx.bwlp.sat.util; import org.openslx.bwlp.sat.RuntimeConfig; import org.openslx.bwlp.thrift.iface.DateParamError; +import org.openslx.bwlp.thrift.iface.ImagePermissions; +import org.openslx.bwlp.thrift.iface.LecturePermissions; import org.openslx.bwlp.thrift.iface.LectureWrite; import org.openslx.bwlp.thrift.iface.TInvalidDateParam; @@ -64,4 +66,35 @@ public class Sanitizer { throw new TInvalidDateParam(DateParamError.TOO_HIGH, "Expiry date lies too far in the future"); } + /** + * Set consistent state for lecture permissions on writing. + */ + public static LecturePermissions handleLecturePermissions(LecturePermissions perms) { + if (perms == null) + return new LecturePermissions(); + if (perms.admin && !perms.edit) { + perms = new LecturePermissions(perms); + perms.edit = true; + } + return perms; + } + + /** + * Set consistent state for image permissions on writing. + */ + public static ImagePermissions handleImagePermissions(ImagePermissions perms) { + if (perms == null) + return new ImagePermissions(); + if (perms.admin && (!perms.edit || !perms.download || !perms.link)) { + perms = new ImagePermissions(perms); + perms.edit = true; + perms.download = true; + perms.link = true; + } else if (perms.edit && !perms.download) { + perms = new ImagePermissions(perms); + perms.download = true; + } + return perms; + } + } |