Search in sources :

Example 11 with Role

use of com.haulmont.cuba.security.entity.Role in project cuba by cuba-platform.

the class TestUserSessionSource method getUserSession.

@Override
public synchronized UserSession getUserSession() {
    if (exceptionOnGetUserSession) {
        throw new NoUserSessionException(UUID.fromString(USER_ID));
    }
    if (session == null) {
        User user = new User();
        user.setId(UUID.fromString(USER_ID));
        user.setLogin("test_admin");
        user.setName("Test Administrator");
        user.setPassword(DigestUtils.md5Hex("test_admin"));
        session = new UserSession(UUID.randomUUID(), user, Collections.<Role>emptyList(), Locale.forLanguageTag("en"), false);
    }
    return session;
}
Also used : Role(com.haulmont.cuba.security.entity.Role) User(com.haulmont.cuba.security.entity.User) UserSession(com.haulmont.cuba.security.global.UserSession) NoUserSessionException(com.haulmont.cuba.security.global.NoUserSessionException)

Example 12 with Role

use of com.haulmont.cuba.security.entity.Role in project cuba by cuba-platform.

the class UpdateDetachedTest method testDataService.

@Test
public void testDataService() throws Exception {
    Permission p;
    DataService ds = AppBeans.get(DataService.NAME);
    LoadContext<Permission> ctx = new LoadContext<>(Permission.class);
    ctx.setId(permissionId);
    ctx.setView(new View(Permission.class).addProperty("target").addProperty("role", new View(Role.class).addProperty("name")));
    p = ds.load(ctx);
    assertNotNull(p);
    p.setTarget("newTarget");
    CommitContext commitCtx = new CommitContext(Collections.singleton(p));
    Set<Entity> entities = ds.commit(commitCtx);
    Permission result = null;
    for (Entity entity : entities) {
        if (entity.equals(p))
            result = (Permission) entity;
    }
    result = reserialize(result);
    assertTrue(PersistenceHelper.isDetached(result));
    assertNotNull(result.getRole());
    assertTrue(PersistenceHelper.isDetached(result.getRole()));
    assertTrue(PersistenceHelper.isLoaded(result, "role"));
}
Also used : Role(com.haulmont.cuba.security.entity.Role) Entity(com.haulmont.cuba.core.entity.Entity) Permission(com.haulmont.cuba.security.entity.Permission) DataService(com.haulmont.cuba.core.app.DataService) Test(org.junit.Test)

Example 13 with Role

use of com.haulmont.cuba.security.entity.Role in project cuba by cuba-platform.

the class EntityManagerTest method testMergeWithOneToManyCollection.

@Test
public void testMergeWithOneToManyCollection() throws Exception {
    User user = null;
    UserRole userRole1 = null, userRole2 = null;
    Role role1 = null, role2 = null;
    try {
        // creates user with one role
        Transaction tx = cont.persistence().createTransaction();
        try {
            EntityManager em = cont.persistence().getEntityManager();
            user = new User();
            user.setName("testMerge1");
            user.setLogin("testMerge1");
            user.setPassword("testMerge1");
            user.setGroup(em.getReference(Group.class, groupId));
            em.persist(user);
            role1 = new Role();
            role1.setName("role1");
            em.persist(role1);
            role2 = new Role();
            role2.setName("role2");
            em.persist(role2);
            userRole1 = new UserRole();
            userRole1.setRole(role1);
            userRole1.setUser(user);
            em.persist(userRole1);
            tx.commit();
        } finally {
            tx.end();
        }
        // creates new user role and merge it
        tx = cont.persistence().createTransaction();
        try {
            EntityManager em = cont.persistence().getEntityManager();
            userRole2 = new UserRole();
            userRole2.setRole(role2);
            userRole2.setUser(user);
            em.merge(userRole2);
            tx.commit();
        } finally {
            tx.end();
        }
        // check user versions, version shouldn't be changed
        tx = cont.persistence().createTransaction();
        try {
            EntityManager em = cont.persistence().getEntityManager();
            assertEquals((Integer) 1, em.find(User.class, user.getId()).getVersion());
            tx.commit();
        } finally {
            tx.end();
        }
    } finally {
        cont.deleteRecord(userRole1);
        cont.deleteRecord(userRole2);
        cont.deleteRecord(user);
        cont.deleteRecord(role1);
        cont.deleteRecord(role2);
    }
}
Also used : Role(com.haulmont.cuba.security.entity.Role) UserRole(com.haulmont.cuba.security.entity.UserRole) Group(com.haulmont.cuba.security.entity.Group) EntityManager(com.haulmont.cuba.core.EntityManager) User(com.haulmont.cuba.security.entity.User) Transaction(com.haulmont.cuba.core.Transaction) UserRole(com.haulmont.cuba.security.entity.UserRole) Test(org.junit.Test)

Example 14 with Role

use of com.haulmont.cuba.security.entity.Role in project cuba by cuba-platform.

the class SystemInfoWindow method generateInsert.

public void generateInsert() {
    scriptArea.setEditable(true);
    if (item instanceof Role) {
        View localView = metadata.getViewRepository().getView(Role.class, View.LOCAL);
        View roleView = new View(localView, Role.class, "role-export-view", true).addProperty("permissions", metadata.getViewRepository().getView(Permission.class, View.LOCAL));
        item = getDsContext().getDataSupplier().reload(item, roleView);
        StringBuilder result = new StringBuilder();
        result.append(sqlGenerationService.generateInsertScript(item)).append("\n");
        for (Permission permission : ((Role) item).getPermissions()) {
            result.append(sqlGenerationService.generateInsertScript(permission)).append("\n");
        }
        scriptArea.setValue(result.toString());
    } else {
        scriptArea.setValue(sqlGenerationService.generateInsertScript(item));
    }
    showScriptArea();
}
Also used : Role(com.haulmont.cuba.security.entity.Role) Permission(com.haulmont.cuba.security.entity.Permission) View(com.haulmont.cuba.core.global.View)

Example 15 with Role

use of com.haulmont.cuba.security.entity.Role in project cuba by cuba-platform.

the class PermissionUiHelper method createPermissionItem.

/**
 * Add or edit permission item in datasource
 * @param ds Datasource
 * @param roleDs Role datasource
 * @param permissionTarget Permission identifier
 * @param type Permission type
 * @param value Permission value
 */
public static void createPermissionItem(CollectionDatasource<Permission, UUID> ds, Datasource<Role> roleDs, final String permissionTarget, PermissionType type, Integer value) {
    Permission permission = null;
    for (Permission p : ds.getItems()) {
        if (Objects.equals(p.getTarget(), permissionTarget)) {
            permission = p;
            break;
        }
    }
    if (permission == null) {
        // restore entity instead of create
        if (ds instanceof RestorablePermissionDatasource) {
            RestorablePermissionDatasource datasource = (RestorablePermissionDatasource) ds;
            permission = datasource.findRemovedEntity(p -> p != null && Objects.equals(p.getTarget(), permissionTarget));
            if (permission != null) {
                datasource.restoreEntity(permission);
            }
        }
    }
    if (permission == null) {
        Metadata metadata = AppBeans.get(Metadata.NAME);
        Permission newPermission = metadata.create(Permission.class);
        newPermission.setRole(roleDs.getItem());
        newPermission.setTarget(permissionTarget);
        newPermission.setType(type);
        newPermission.setValue(value);
        ds.addItem(newPermission);
    } else {
        permission.setValue(value);
    }
}
Also used : RestorablePermissionDatasource(com.haulmont.cuba.gui.app.security.ds.RestorablePermissionDatasource) PermissionVariant(com.haulmont.cuba.gui.app.security.entity.PermissionVariant) AttributePermissionVariant(com.haulmont.cuba.gui.app.security.entity.AttributePermissionVariant) Datasource(com.haulmont.cuba.gui.data.Datasource) PermissionType(com.haulmont.cuba.security.entity.PermissionType) RestorablePermissionDatasource(com.haulmont.cuba.gui.app.security.ds.RestorablePermissionDatasource) UUID(java.util.UUID) AppBeans(com.haulmont.cuba.core.global.AppBeans) Metadata(com.haulmont.cuba.core.global.Metadata) Objects(java.util.Objects) UiPermissionVariant(com.haulmont.cuba.gui.app.security.entity.UiPermissionVariant) Permission(com.haulmont.cuba.security.entity.Permission) Role(com.haulmont.cuba.security.entity.Role) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource) Permission(com.haulmont.cuba.security.entity.Permission) Metadata(com.haulmont.cuba.core.global.Metadata)

Aggregations

Role (com.haulmont.cuba.security.entity.Role)29 Test (org.junit.Test)18 Datasource (com.haulmont.cuba.gui.data.Datasource)12 Component (com.haulmont.cuba.gui.components.Component)10 RoleType (com.haulmont.cuba.security.entity.RoleType)10 Assert (org.junit.Assert)10 Ignore (org.junit.Ignore)10 User (com.haulmont.cuba.security.entity.User)9 UserRole (com.haulmont.cuba.security.entity.UserRole)9 OptionsGroup (com.haulmont.cuba.gui.components.OptionsGroup)7 OptionsList (com.haulmont.cuba.gui.components.OptionsList)6 Group (com.haulmont.cuba.security.entity.Group)6 TestCase.assertEquals (junit.framework.TestCase.assertEquals)5 Assert.assertTrue (org.junit.Assert.assertTrue)5 EntityManager (com.haulmont.cuba.core.EntityManager)4 Transaction (com.haulmont.cuba.core.Transaction)4 Permission (com.haulmont.cuba.security.entity.Permission)4 Before (org.junit.Before)4 UUID (java.util.UUID)3 View (com.haulmont.cuba.core.global.View)2