mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 00:15:44 +01:00
added permission check to push command builder
This commit is contained in:
@@ -33,10 +33,15 @@ package sonia.scm.repository.api;
|
|||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
|
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.apache.shiro.subject.Subject;
|
||||||
|
|
||||||
|
import sonia.scm.repository.PermissionType;
|
||||||
import sonia.scm.repository.Repository;
|
import sonia.scm.repository.Repository;
|
||||||
import sonia.scm.repository.RepositoryException;
|
import sonia.scm.repository.RepositoryException;
|
||||||
import sonia.scm.repository.spi.PushCommand;
|
import sonia.scm.repository.spi.PushCommand;
|
||||||
import sonia.scm.repository.spi.PushCommandRequest;
|
import sonia.scm.repository.spi.PushCommandRequest;
|
||||||
|
import sonia.scm.security.RepositoryPermission;
|
||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
//~--- JDK imports ------------------------------------------------------------
|
||||||
|
|
||||||
@@ -76,6 +81,14 @@ public final class PushCommandBuilder
|
|||||||
public PushResponse push(Repository remoteRepository)
|
public PushResponse push(Repository remoteRepository)
|
||||||
throws IOException, RepositoryException
|
throws IOException, RepositoryException
|
||||||
{
|
{
|
||||||
|
Subject subject = SecurityUtils.getSubject();
|
||||||
|
|
||||||
|
//J-
|
||||||
|
subject.checkPermission(
|
||||||
|
new RepositoryPermission(remoteRepository, PermissionType.WRITE)
|
||||||
|
);
|
||||||
|
//J+
|
||||||
|
|
||||||
request.setRemoteRepository(remoteRepository);
|
request.setRemoteRepository(remoteRepository);
|
||||||
|
|
||||||
return command.push(request);
|
return command.push(request);
|
||||||
|
|||||||
Reference in New Issue
Block a user