--- /dev/null
+/* Copyright (c) 2019 AT&T Intellectual Property. #\r
+# #\r
+# Licensed under the Apache License, Version 2.0 (the "License"); #\r
+# you may not use this file except in compliance with the License. #\r
+# You may obtain a copy of the License at #\r
+# #\r
+# http://www.apache.org/licenses/LICENSE-2.0 #\r
+# #\r
+# Unless required by applicable law or agreed to in writing, software #\r
+# distributed under the License is distributed on an "AS IS" BASIS, #\r
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #\r
+# See the License for the specific language governing permissions and #\r
+# limitations under the License. #\r
+##############################################################################*/\r
+\r
+\r
+package org.oran.otf.common.utility.permissions;\r
+\r
+import org.oran.otf.common.model.Group;\r
+import org.oran.otf.common.model.User;\r
+import org.oran.otf.common.repository.GroupRepository;\r
+\r
+import java.util.Collection;\r
+\r
+public class PermissionChecker {\r
+ //check is a user have a certain permission in a group\r
+ public static boolean hasPermissionTo(User user,Group group,String permission, GroupRepository groupRepository){\r
+ UserPermission userPermission = new PermissionUtil().buildUserPermission(user,groupRepository);\r
+ return hasPermissionTo(userPermission,group,permission);\r
+ }\r
+ public static boolean hasPermissionTo(User user, Group group, Collection<String> permissions, GroupRepository groupRepository){\r
+ UserPermission userPermission = new PermissionUtil().buildUserPermission(user,groupRepository);\r
+ for(String permission : permissions){\r
+ if(!hasPermissionTo(userPermission,group,permission)){\r
+ return false;\r
+ }\r
+ }\r
+ return true;\r
+ }\r
+ // check a users list of permission in a group\r
+ private static boolean hasPermissionTo(UserPermission userPermission, Group group,String permission){\r
+ switch (permission.toUpperCase()) {\r
+ case (UserPermission.Permission.READ):\r
+ return userPermission.hasAccessTo(group.get_id().toString(),UserPermission.Permission.READ);\r
+ case (UserPermission.Permission.WRITE):\r
+ return userPermission.hasAccessTo(group.get_id().toString(),UserPermission.Permission.WRITE);\r
+ case (UserPermission.Permission.EXECUTE):\r
+ return userPermission.hasAccessTo(group.get_id().toString(),UserPermission.Permission.EXECUTE);\r
+ case (UserPermission.Permission.DELETE):\r
+ return userPermission.hasAccessTo(group.get_id().toString(),UserPermission.Permission.DELETE);\r
+ case (UserPermission.Permission.MANAGEMENT):\r
+ return userPermission.hasAccessTo(group.get_id().toString(),UserPermission.Permission.MANAGEMENT);\r
+ default:\r
+ return false;// reaches here when permission provided is not an option\r
+ }\r
+ }\r
+}
\ No newline at end of file