mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 15:05:44 +01:00
Add permission for permissions
This commit is contained in:
12
scm-core/src/main/java/sonia/scm/security/Permission.java
Normal file
12
scm-core/src/main/java/sonia/scm/security/Permission.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package sonia.scm.security;
|
||||||
|
|
||||||
|
import com.github.sdorra.ssp.PermissionObject;
|
||||||
|
import com.github.sdorra.ssp.StaticPermissions;
|
||||||
|
|
||||||
|
@StaticPermissions(
|
||||||
|
value = "permission",
|
||||||
|
permissions = {},
|
||||||
|
globalPermissions = {"list", "assign"}
|
||||||
|
)
|
||||||
|
public interface Permission extends PermissionObject {
|
||||||
|
}
|
||||||
@@ -126,7 +126,7 @@ public class DefaultSecuritySystem implements SecuritySystem
|
|||||||
@Override
|
@Override
|
||||||
public void addPermission(AssignedPermission permission)
|
public void addPermission(AssignedPermission permission)
|
||||||
{
|
{
|
||||||
assertIsAdmin();
|
assertHasPermission();
|
||||||
validatePermission(permission);
|
validatePermission(permission);
|
||||||
|
|
||||||
String id = store.put(permission);
|
String id = store.put(permission);
|
||||||
@@ -149,7 +149,7 @@ public class DefaultSecuritySystem implements SecuritySystem
|
|||||||
@Override
|
@Override
|
||||||
public void deletePermission(AssignedPermission permission)
|
public void deletePermission(AssignedPermission permission)
|
||||||
{
|
{
|
||||||
assertIsAdmin();
|
assertHasPermission();
|
||||||
boolean deleted = deletePermissions(sap -> Objects.equal(sap.getName(), permission.getName())
|
boolean deleted = deletePermissions(sap -> Objects.equal(sap.getName(), permission.getName())
|
||||||
&& Objects.equal(sap.isGroupPermission(), permission.isGroupPermission())
|
&& Objects.equal(sap.isGroupPermission(), permission.isGroupPermission())
|
||||||
&& Objects.equal(sap.getPermission(), permission.getPermission()));
|
&& Objects.equal(sap.getPermission(), permission.getPermission()));
|
||||||
@@ -203,7 +203,7 @@ public class DefaultSecuritySystem implements SecuritySystem
|
|||||||
@Override
|
@Override
|
||||||
public Collection<PermissionDescriptor> getAvailablePermissions()
|
public Collection<PermissionDescriptor> getAvailablePermissions()
|
||||||
{
|
{
|
||||||
assertIsAdmin();
|
assertHasPermission();
|
||||||
|
|
||||||
return availablePermissions;
|
return availablePermissions;
|
||||||
}
|
}
|
||||||
@@ -238,9 +238,9 @@ public class DefaultSecuritySystem implements SecuritySystem
|
|||||||
* Method description
|
* Method description
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private void assertIsAdmin()
|
private void assertHasPermission()
|
||||||
{
|
{
|
||||||
SecurityUtils.getSubject().checkRole(Role.ADMIN);
|
PermissionPermissions.assign().check();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user