- \r
- public static boolean hasPermission(Collection<GrantedAuthority> authorities,\r
- Object targetDomainObject, AuthorityPermission evalPermission) {\r
- Feature feature = null;\r
- String authorityString;\r
- AuthorityPermission authorityPermission;\r
- \r
- \r
- if (targetDomainObject instanceof DescriptionElementBase){\r
- feature = ((DescriptionElementBase)targetDomainObject).getFeature();\r
- } \r
- \r
- for (GrantedAuthority authority: authorities){\r
- \r
- authorityString = authority.getAuthority();\r
- authorityPermission = new AuthorityPermission(authorityString);\r
- \r
- if (targetDomainObject instanceof DescriptionElementBase){\r
- try{\r
- //check for a special feature\r
- if (feature != null){\r
- if (authorityString.contains(feature.getLabel()) && (evalPermission.permission.equals(authorityPermission.permission) || authorityPermission.equals(CdmPermission.ADMIN))){\r
- return true;\r
- } else if (authorityPermission.className.equals(CdmPermissionClass.DESCRIPTIONBASE)) {\r
- if (evalPermission.permission.equals(authorityPermission.permission) ){\r
- return true;\r
- } else if (authorityPermission.permission.equals(CdmPermission.ADMIN)){\r
- return true;\r
- }\r
- }\r
- }\r
- }catch(Exception e){\r
- //in tests the initialisation of terms like features fails...\r
- if (org.hibernate.ObjectNotFoundException.class.isInstance(e)){\r
- if (evalPermission.permission.equals(authorityPermission.permission)|| authorityPermission.permission.equals(CdmPermission.ADMIN)){\r
- return true;\r
- }\r
- }else {\r
- return false;\r
- }\r
- \r
- }\r
- //the user has the general right for descriptions\r
- if (authorityPermission.className.equals(CdmPermissionClass.DESCRIPTIONBASE)){\r
- //no special feature\r
- if (authority.getAuthority().lastIndexOf(".") == authority.getAuthority().indexOf(".") && (authorityPermission.className.equals(evalPermission.permission) || authorityPermission.equals(CdmPermission.ADMIN))){\r
- return true;\r
- }\r
- }\r
- } else{\r
- if (authorityPermission.getClassName().equals(CdmPermissionClass.DESCRIPTIONBASE) && authorityPermission.permission.equals(evalPermission.permission)){\r
- return true;\r
- }\r
- }\r
- }\r
- \r
- return false;\r
- }\r
- \r
- \r
- /*public static boolean hasPermission (Collection<GrantedAuthority> authorities,\r
- DescriptionBase targetDomainObject, AuthorityPermission evalPermission){\r
- Set<DescriptionElementBase> elements = targetDomainObject.getElements();\r
- \r
- for (GrantedAuthority authority :authorities){\r
- if (authority.getAuthority().contains(CdmPermissionClass.DESCRIPTIONBASE.toString())){\r
- if (authority.getAuthority().lastIndexOf(".") == authority.getAuthority().indexOf(".") && authority.getAuthority().contains(evalPermission.permission.toString())){\r
- return true;\r
- }else{\r
- //TODO: das stimmt noch nicht so ganz!!!\r
- for (DescriptionElementBase element: elements){\r
- if (authority.getAuthority().contains(element.getFeature().getLabel()) && authority.getAuthority().contains(evalPermission.permission.toString())){\r
- return true;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- \r
- \r
- return false;\r
- \r
- }*/\r
+\r
+ public static boolean hasPermission(Collection<GrantedAuthority> authorities,\r
+ Object targetDomainObject, AuthorityPermission evalPermission) {\r
+ Feature feature = null;\r
+ String authorityString;\r
+ AuthorityPermission authorityPermission;\r
+\r
+\r
+ if (targetDomainObject instanceof DescriptionElementBase){\r
+ feature = ((DescriptionElementBase)targetDomainObject).getFeature();\r
+ }\r
+\r
+ for (GrantedAuthority authority: authorities){\r
+\r
+ authorityString = authority.getAuthority();\r
+ authorityPermission = new AuthorityPermission(authorityString);\r
+\r
+ if (targetDomainObject instanceof DescriptionElementBase){\r
+ try{\r
+ //check for a special feature\r
+ if (feature != null){\r
+ if (authorityString.contains(feature.getLabel()) && (evalPermission.permission.equals(authorityPermission.permission) || authorityPermission.equals(CdmPermission.ADMIN))){\r
+ return true;\r
+ } else if (authorityPermission.className.equals(CdmPermissionClass.DESCRIPTIONBASE)) {\r
+ if (evalPermission.permission.equals(authorityPermission.permission) ){\r
+ return true;\r
+ } else if (authorityPermission.permission.equals(CdmPermission.ADMIN)){\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+ }catch(Exception e){\r
+ //in tests the initialisation of terms like features fails...\r
+ if (org.hibernate.ObjectNotFoundException.class.isInstance(e)){\r
+ if (evalPermission.permission.equals(authorityPermission.permission)|| authorityPermission.permission.equals(CdmPermission.ADMIN)){\r
+ return true;\r
+ }\r
+ }else {\r
+ return false;\r
+ }\r
+\r
+ }\r
+ //the user has the general right for descriptions\r
+ if (authorityPermission.className.equals(CdmPermissionClass.DESCRIPTIONBASE)){\r
+ //no special feature\r
+ if (authority.getAuthority().lastIndexOf(".") == authority.getAuthority().indexOf(".") && (authorityPermission.className.equals(evalPermission.permission) || authorityPermission.equals(CdmPermission.ADMIN))){\r
+ return true;\r
+ }\r
+ }\r
+ } else{\r
+ if (authorityPermission.getClassName().equals(CdmPermissionClass.DESCRIPTIONBASE) && authorityPermission.permission.equals(evalPermission.permission)){\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+\r
+ return false;\r
+ }\r
+\r
+\r
+ /*public static boolean hasPermission (Collection<GrantedAuthority> authorities,\r
+ DescriptionBase targetDomainObject, AuthorityPermission evalPermission){\r
+ Set<DescriptionElementBase> elements = targetDomainObject.getElements();\r
+\r
+ for (GrantedAuthority authority :authorities){\r
+ if (authority.getAuthority().contains(CdmPermissionClass.DESCRIPTIONBASE.toString())){\r
+ if (authority.getAuthority().lastIndexOf(".") == authority.getAuthority().indexOf(".") && authority.getAuthority().contains(evalPermission.permission.toString())){\r
+ return true;\r
+ }else{\r
+ //TODO: das stimmt noch nicht so ganz!!!\r
+ for (DescriptionElementBase element: elements){\r
+ if (authority.getAuthority().contains(element.getFeature().getLabel()) && authority.getAuthority().contains(evalPermission.permission.toString())){\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+\r
+ return false;\r
+\r
+ }*/\r