|
|
@@ -110,7 +110,7 @@ public class UserModel implements Principal, Serializable, Comparable<UserModel> |
|
|
|
* @return the user's list of permissions
|
|
|
|
*/
|
|
|
|
public List<RegistrantAccessPermission> getRepositoryPermissions() {
|
|
|
|
List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>();
|
|
|
|
List<RegistrantAccessPermission> list = new ArrayList<>();
|
|
|
|
if (canAdmin()) {
|
|
|
|
// user has REWIND access to all repositories
|
|
|
|
return list;
|
|
|
@@ -135,8 +135,6 @@ public class UserModel implements Principal, Serializable, Comparable<UserModel> |
|
|
|
Collections.sort(list);
|
|
|
|
|
|
|
|
// include immutable team permissions, being careful to preserve order
|
|
|
|
Set<RegistrantAccessPermission> set = new LinkedHashSet<RegistrantAccessPermission>(list);
|
|
|
|
ArrayList<RegistrantAccessPermission> arrayList = new ArrayList<RegistrantAccessPermission>(list);
|
|
|
|
for (TeamModel team : teams) {
|
|
|
|
for (RegistrantAccessPermission teamPermission : team.getRepositoryPermissions()) {
|
|
|
|
// we can not change an inherited team permission, though we can override
|
|
|
@@ -144,22 +142,17 @@ public class UserModel implements Principal, Serializable, Comparable<UserModel> |
|
|
|
teamPermission.permissionType = PermissionType.TEAM;
|
|
|
|
teamPermission.source = team.name;
|
|
|
|
teamPermission.mutable = false;
|
|
|
|
if(arrayList.contains(teamPermission) && arrayList.get(arrayList.indexOf(teamPermission)).permissionType != PermissionType.REGEX){
|
|
|
|
//checking either to replace permission in set or not
|
|
|
|
if(teamPermission.permission.compareTo(arrayList.get(arrayList.indexOf(teamPermission)).permission) > 0 ){
|
|
|
|
arrayList.remove(teamPermission);
|
|
|
|
arrayList.add(teamPermission);
|
|
|
|
set.remove(teamPermission);
|
|
|
|
set.add(teamPermission);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
arrayList.add(teamPermission);
|
|
|
|
}
|
|
|
|
set.add(teamPermission);
|
|
|
|
int i = list.indexOf(teamPermission);
|
|
|
|
if (i < 0) list.add(teamPermission);
|
|
|
|
else {
|
|
|
|
RegistrantAccessPermission lp = list.get(i);
|
|
|
|
if (teamPermission.permission.exceeds(lp.permission)) {
|
|
|
|
list.set(i, teamPermission);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new ArrayList<RegistrantAccessPermission>(set);
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|