use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.
the class InMemoryConstraintTest method testConstraintsOnMiddlePage.
@Test
public void testConstraintsOnMiddlePage() throws LoginException {
LoginWorker lw = AppBeans.get(LoginWorker.NAME);
UserSession userSession = lw.login("constraintUser1", passwordEncryption.getPlainHash(PASSWORD), Locale.getDefault());
assertNotNull(userSession);
UserSessionSource uss = AppBeans.get(UserSessionSource.class);
UserSession savedUserSession = uss.getUserSession();
((TestUserSessionSource) uss).setUserSession(userSession);
try {
DataManager dataManager = AppBeans.get(DataManager.NAME);
dataManager = dataManager.secure();
LoadContext loadContext = new LoadContext(User.class).setView(View.LOCAL);
loadContext.setQuery(new LoadContext.Query("select u from sec$User u where (u.login like 'user%' or u.login like 'constraintUser%') order by u.login asc"));
loadContext.getQuery().setMaxResults(30);
loadContext.getQuery().setFirstResult(0);
List resultList = dataManager.loadList(loadContext);
assertEquals(11, resultList.size());
assertEquals(11, dataManager.getCount(loadContext));
} finally {
((TestUserSessionSource) uss).setUserSession(savedUserSession);
}
}
use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.
the class InMemoryConstraintTest method testConstraintsOnMoreThanOnePage.
@Test
public void testConstraintsOnMoreThanOnePage() throws LoginException {
LoginWorker lw = AppBeans.get(LoginWorker.NAME);
UserSession userSession = lw.login("constraintUser3", passwordEncryption.getPlainHash(PASSWORD), Locale.getDefault());
assertNotNull(userSession);
UserSessionSource uss = AppBeans.get(UserSessionSource.class);
UserSession savedUserSession = uss.getUserSession();
((TestUserSessionSource) uss).setUserSession(userSession);
try {
DataManager dataManager = AppBeans.get(DataManager.NAME);
dataManager = dataManager.secure();
LoadContext loadContext = new LoadContext(User.class).setView(View.LOCAL);
loadContext.setQuery(new LoadContext.Query("select u from sec$User u where (u.login like 'user%' or u.login like 'constraintUser%') order by u.login desc"));
loadContext.getQuery().setMaxResults(30);
loadContext.getQuery().setFirstResult(0);
List resultList = dataManager.loadList(loadContext);
assertEquals(30, resultList.size());
assertEquals(38, dataManager.getCount(loadContext));
} finally {
((TestUserSessionSource) uss).setUserSession(savedUserSession);
}
}
use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.
the class PermissionTest method test.
@Test
public void test() throws LoginException {
LoginWorker lw = AppBeans.get(LoginWorker.NAME);
UserSession userSession = lw.login(USER_NAME, passwordEncryption.getPlainHash(USER_PASSW), Locale.getDefault());
assertNotNull(userSession);
boolean permitted = userSession.isPermitted(PermissionType.SCREEN, PERM_TARGET_SCREEN);
assertFalse(permitted);
permitted = userSession.isPermitted(PermissionType.SCREEN, "some action");
// permitted all if not explicitly denied
assertTrue(permitted);
permitted = userSession.isPermitted(PermissionType.ENTITY_ATTR, PERM_TARGET_ATTR);
// READ access permitted
assertTrue(permitted);
permitted = userSession.isPermitted(PermissionType.ENTITY_ATTR, PERM_TARGET_ATTR, 2);
// READ/WRITE access denied
assertFalse(permitted);
}
use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.
the class NonEntityQueryTest method testIdentificationVariableDeniedSecurity.
@Test
public void testIdentificationVariableDeniedSecurity() throws Exception {
ConfigStorageService configStorageService = AppBeans.get(ConfigStorageService.class);
configStorageService.setDbProperty("cuba.disableLoadValuesIfConstraints", "true");
LoginWorker lw = AppBeans.get(LoginWorker.NAME);
UserSession userSession = lw.login(USER_NAME_1, passwordEncryption.getPlainHash(USER_PASSWORD), Locale.getDefault());
assertNotNull(userSession);
UserSessionSource uss = AppBeans.get(UserSessionSource.class);
UserSession savedUserSession = uss.getUserSession();
((TestUserSessionSource) uss).setUserSession(userSession);
try {
ValueLoadContext context = ValueLoadContext.create();
context.setQueryString("select s from sys$EntitySnapshot s");
context.addProperty("snapshot");
List result = dataManager.secure().loadValues(context);
assertTrue(result.isEmpty());
} finally {
((TestUserSessionSource) uss).setUserSession(savedUserSession);
}
}
use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.
the class PermissionTest method testNullPermissionsOnUser.
@Test
public void testNullPermissionsOnUser() throws LoginException {
LoginWorker lw = AppBeans.get(LoginWorker.NAME);
UserSession userSession = lw.login(USER_NAME, passwordEncryption.getPlainHash(USER_PASSW), Locale.getDefault());
assertNotNull(userSession);
// permission is empty on user
if (userSession.getUser().getUserRoles() != null) {
for (UserRole ur : userSession.getUser().getUserRoles()) {
if (ur.getRole() != null) {
assertNull(ur.getRole().getPermissions());
}
}
}
User user = userSession.getUser();
Transaction tx = cont.persistence().createTransaction();
try {
cont.persistence().getEntityManager().merge(user);
tx.commit();
} finally {
tx.end();
}
tx = cont.persistence().createTransaction();
try {
user = cont.persistence().getEntityManager().find(User.class, user.getId());
if (userSession.getUser().getUserRoles() != null) {
for (UserRole ur : user.getUserRoles()) {
if (ur.getRole() != null) {
Role role = ur.getRole();
if ("testRole1".equals(role.getName()) || "testRole2".equals(role.getName())) {
assertNotNull(role.getPermissions());
assertEquals(1, role.getPermissions().size());
}
}
}
}
tx.commit();
} finally {
tx.end();
}
}
Aggregations