cuba-platform

Pass attributes to sec$User entered in the Coustmer entity creation screen [cuba-platform]


I'm new to Cuba-platform version 6.10.3. I have a problem where I am stuck. I have a User entity where I create a new user which has parameters identical to those of the sec$User system entity. Now, I would like to pass the values ​​entered in the User entity (name, password, lastname, email) and also the access group created specifically for the users (customers). Then register the attributes directly in the sec$User system entity and then log into the app with the credentials of the users created with their respective permissions.

I hope someone can help me. Thanks a lot to everyone.


Solution

  • In order to create a new sec$User entity, invoke the Metadata#create() method of the com.haulmont.cuba.core.global.Metadata bean. Fill necessary fields.

    To save new user to the database, use DataManager bean: com.haulmont.cuba.core.global.DataManager#commit(user)

    If you need to login to the application automatically without having user password, you can use the "trusted login" feature.

    When in web client, user com.haulmont.cuba.web.Connection bean to login. When in web service (e.g. portal module) - use the com.haulmont.cuba.security.auth.AuthenticationService service.

    And call its login method with TrustedClientCredentials:

    @Inject
    com.haulmont.cuba.web.auth.WebAuthConfig webAuthConfig;
    // ...
    
    authenticationService.login(new TrustedClientCredentials("username", webAuthConfig.getTrustedClientPassword(), Locale.ENGLISH);
    

    See also

    https://doc.cuba-platform.com/manual-6.10/login.html#login_additional_eatures

    https://doc.cuba-platform.com/manual-6.10/web_login.html

    Note that web client is working under the anonymous user until other user logs in. So you will need to add additional permissions to the user (write access to the User entity).