Introduce namespace permissions

This commit is contained in:
René Pfeuffer
2020-09-15 08:44:09 +02:00
parent 46267daeda
commit b1e6aba38c
4 changed files with 45 additions and 1 deletions

View File

@@ -24,16 +24,29 @@
package sonia.scm.repository;
import com.github.sdorra.ssp.PermissionObject;
import com.github.sdorra.ssp.StaticPermissions;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import static java.util.Collections.unmodifiableCollection;
public class Namespace implements Cloneable {
@StaticPermissions(
value = "namespace",
globalPermissions = {"permissionRead", "permissionWrite"},
permissions = {},
custom = true, customGlobal = true
)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "namespaces")
public class Namespace implements PermissionObject, Cloneable {
private String namespace;
private Set<RepositoryPermission> permissions = new HashSet<>();
@@ -69,6 +82,11 @@ public class Namespace implements Cloneable {
return this.permissions.remove(permission);
}
@Override
public String getId() {
return getNamespace();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;

View File

@@ -44,6 +44,12 @@
<permission>
<value>repository:create</value>
</permission>
<permission>
<value>namespace:permissionRead</value>
</permission>
<permission>
<value>namespace:permissionWrite</value>
</permission>
<permission>
<value>user:*</value>
</permission>

View File

@@ -93,6 +93,16 @@
"description": "Darf alle installierten und verfügbaren Plugins lesen und verwalten"
}
},
"namespace": {
"permissionRead": {
"displayName": "Berechtigungen auf Namespaces lesen",
"description": "Darf die Berechtigungen auf Namespace-Ebene sehen"
},
"permissionWrite": {
"displayName": "Berechtigungen auf Namespaces modifizieren",
"description": "Darf die Berechtigungen auf Namespace-Ebene bearbeiten"
}
},
"unknown": "Unbekannte Berechtigung"
},
"verbs": {

View File

@@ -93,6 +93,16 @@
"description": "May see and manage all installed and available plugins"
}
},
"namespace": {
"permissionRead": {
"displayName": "read permissions on namespaces",
"description": "May see the permissions set for namespaces"
},
"permissionWrite": {
"displayName": "modify permissions on namespaces",
"description": "May modify the permissions set for namespaces"
}
},
"unknown": "Unknown permission"
},
"verbs": {