Search in sources :

Example 21 with LoginWorker

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);
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) UserSession(com.haulmont.cuba.security.global.UserSession) ArrayList(java.util.ArrayList) List(java.util.List)

Example 22 with LoginWorker

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);
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) UserSession(com.haulmont.cuba.security.global.UserSession) ArrayList(java.util.ArrayList) List(java.util.List)

Example 23 with LoginWorker

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);
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) UserSession(com.haulmont.cuba.security.global.UserSession) Test(org.junit.Test)

Example 24 with LoginWorker

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);
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) ConfigStorageService(com.haulmont.cuba.core.app.ConfigStorageService) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) UserSession(com.haulmont.cuba.security.global.UserSession) List(java.util.List) Test(org.junit.Test)

Example 25 with LoginWorker

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();
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) Transaction(com.haulmont.cuba.core.Transaction) UserSession(com.haulmont.cuba.security.global.UserSession) Test(org.junit.Test)

Aggregations

LoginWorker (com.haulmont.cuba.security.app.LoginWorker)25 UserSession (com.haulmont.cuba.security.global.UserSession)25 TestUserSessionSource (com.haulmont.cuba.testsupport.TestUserSessionSource)23 Test (org.junit.Test)16 List (java.util.List)8 ArrayList (java.util.ArrayList)7 ConfigStorageService (com.haulmont.cuba.core.app.ConfigStorageService)4 KeyValueEntity (com.haulmont.cuba.core.entity.KeyValueEntity)3 Server (com.haulmont.cuba.core.entity.Server)2 Transaction (com.haulmont.cuba.core.Transaction)1 DataService (com.haulmont.cuba.core.app.DataService)1 ConstraintData (com.haulmont.cuba.security.global.ConstraintData)1