I have created a role in my Core module programmatically at design time as seen below.
But how do I assign a ‘localized name’ programmatically for the role?
package com.company.lms.core;
import com.company.lms.entity.Setting;
import com.haulmont.cuba.security.app.role.AnnotatedRoleDefinition;
import com.haulmont.cuba.security.app.role.annotation.EntityAccess;
import com.haulmont.cuba.security.app.role.annotation.EntityAttributeAccess;
import com.haulmont.cuba.security.app.role.annotation.Role;
import com.haulmont.cuba.security.app.role.annotation.ScreenAccess;
import com.haulmont.cuba.security.entity.EntityOp;
import com.haulmont.cuba.security.role.EntityAttributePermissionsContainer;
import com.haulmont.cuba.security.role.EntityPermissionsContainer;
import com.haulmont.cuba.security.role.ScreenPermissionsContainer;
@Role(name = SettingsManagementRole.NAME)
public class SettingsManagementRole extends AnnotatedRoleDefinition {
public final static String NAME = "settings-management";
@EntityAccess(entityClass = Setting.class,
operations = {EntityOp.CREATE, EntityOp.READ, EntityOp.UPDATE, EntityOp.DELETE})
@Override
public EntityPermissionsContainer entityPermissions() {
return super.entityPermissions();
}
@EntityAttributeAccess(entityClass = Setting.class, modify = "*")
@Override
public EntityAttributePermissionsContainer entityAttributePermissions() {
return super.entityAttributePermissions();
}
@ScreenAccess(screenIds = {"lms_Setting.edit"})
@Override
public ScreenPermissionsContainer screenPermissions() {
return super.screenPermissions();
}
}