use of com.yahoo.elide.annotation.UpdatePermission in project elide by yahoo.
the class PermissionExecutorTest method testBadInstance.
@Test
public void testBadInstance() {
@Entity
@Include(rootLevel = false)
@UpdatePermission(expression = "privatePermission")
class Model {
}
PersistentResource resource = newResource(new Model(), Model.class, true);
RequestScope requestScope = resource.getRequestScope();
assertThrows(IllegalArgumentException.class, () -> requestScope.getPermissionExecutor().checkPermission(UpdatePermission.class, resource));
requestScope.getPermissionExecutor().executeCommitChecks();
}
use of com.yahoo.elide.annotation.UpdatePermission in project elide by yahoo.
the class PermissionExecutorTest method testFailOperationCheckDeferred.
@Test
public void testFailOperationCheckDeferred() throws Exception {
@Entity
@Include(rootLevel = false)
@UpdatePermission(expression = "sampleOperation")
class Model implements SampleOperationModel {
@Override
public boolean test() {
return false;
}
}
PersistentResource resource = newResource(new Model(), Model.class, true);
RequestScope requestScope = resource.getRequestScope();
// Because the object is newly created, the check is DEFERRED.
assertEquals(ExpressionResult.DEFERRED, requestScope.getPermissionExecutor().checkPermission(UpdatePermission.class, resource));
assertThrows(ForbiddenAccessException.class, () -> requestScope.getPermissionExecutor().executeCommitChecks());
}
use of com.yahoo.elide.annotation.UpdatePermission in project elide by yahoo.
the class PermissionExecutorTest method testFailRunAtCommitCheck.
@Test
public void testFailRunAtCommitCheck() throws Exception {
@Entity
@Include(rootLevel = false)
@UpdatePermission(expression = "sampleCommit")
class Model implements SampleOperationModel {
@Override
public boolean test() {
return false;
}
}
PersistentResource resource = newResource(new Model(), Model.class, false);
RequestScope requestScope = resource.getRequestScope();
// Because the check is runAtCommit, the check is DEFERRED.
assertEquals(ExpressionResult.DEFERRED, requestScope.getPermissionExecutor().checkPermission(UpdatePermission.class, resource));
assertThrows(ForbiddenAccessException.class, () -> requestScope.getPermissionExecutor().executeCommitChecks());
}
Aggregations