Search in sources :

Example 1 with IUserGroup

use of com.helger.photon.security.usergroup.IUserGroup in project phoss-smp by phax.

the class V12__MigrateUserGroupsToDB method migrate.

public void migrate(@Nonnull final Context context) throws Exception {
    try (final WebScoped aWS = new WebScoped()) {
        LOGGER.info("Migrating all user groups to the DB");
        final String sFilename = PhotonSecurityManager.FactoryXML.DIRECTORY_SECURITY + PhotonSecurityManager.FactoryXML.FILENAME_USERGROUPS_XML;
        final File aFile = WebFileIO.getDataIO().getFile(sFilename);
        if (aFile.exists()) {
            final IUserManager aUserMgr = new UserManagerJDBC(SMPDBExecutor::new, SMPDBExecutor.TABLE_NAME_CUSTOMIZER);
            final IRoleManager aRoleMgr = new RoleManagerJDBC(SMPDBExecutor::new, SMPDBExecutor.TABLE_NAME_CUSTOMIZER);
            final UserGroupManager aMgrXML = new UserGroupManager(sFilename, aUserMgr, aRoleMgr);
            final ICommonsList<IUserGroup> aUserGroups = aMgrXML.getAll();
            if (aUserGroups.isNotEmpty()) {
                final UserGroupManagerJDBC aMgrNew = new UserGroupManagerJDBC(SMPDBExecutor::new, SMPDBExecutor.TABLE_NAME_CUSTOMIZER, aUserMgr, aRoleMgr);
                for (final IUserGroup aUserGroup : aUserGroups) {
                    // Don't run the callback here
                    if (aMgrNew.internalCreateNewUserGroup((UserGroup) aUserGroup, false, false) == null)
                        LOGGER.error("Failed to migrate user group " + aUserGroup + " to DB");
                }
            }
            // Rename to avoid later inconsistencies
            WebFileIO.getDataIO().renameFile(sFilename, sFilename + ".migrated");
            LOGGER.info("Finished migrating all " + aUserGroups.size() + " user groups to the DB");
        } else {
            LOGGER.warn("No user group file found");
        }
    }
}
Also used : WebScoped(com.helger.web.scope.mgr.WebScoped) UserGroupManager(com.helger.photon.security.usergroup.UserGroupManager) IUserManager(com.helger.photon.security.user.IUserManager) IUserGroup(com.helger.photon.security.usergroup.IUserGroup) SMPDBExecutor(com.helger.phoss.smp.backend.sql.SMPDBExecutor) UserGroup(com.helger.photon.security.usergroup.UserGroup) IUserGroup(com.helger.photon.security.usergroup.IUserGroup) IRoleManager(com.helger.photon.security.role.IRoleManager) UserGroupManagerJDBC(com.helger.photon.jdbc.security.UserGroupManagerJDBC) UserManagerJDBC(com.helger.photon.jdbc.security.UserManagerJDBC) RoleManagerJDBC(com.helger.photon.jdbc.security.RoleManagerJDBC) File(java.io.File)

Example 2 with IUserGroup

use of com.helger.photon.security.usergroup.IUserGroup in project peppol-practical by phax.

the class AppCommonUI method createViewLink.

@Nonnull
public static IHCNode createViewLink(@Nonnull final IWebPageExecutionContext aWPEC, @Nullable final ITypedObject<String> aObject, @Nullable final String sDisplayName) {
    if (aObject == null)
        return HCTextNode.createOnDemand(sDisplayName);
    final Locale aDisplayLocale = aWPEC.getDisplayLocale();
    if (aObject instanceof IRole) {
        final IRole aTypedObj = (IRole) aObject;
        final String sRealDisplayName = sDisplayName != null ? sDisplayName : aTypedObj.getName();
        final String sMenuItemID = BootstrapPagesMenuConfigurator.MENU_ADMIN_SECURITY_ROLE;
        final IMenuObject aObj = aWPEC.getMenuTree().getItemDataWithID(sMenuItemID);
        if (aObj != null && aObj.matchesDisplayFilter())
            return new HCA(getViewLink(aWPEC, sMenuItemID, aTypedObj)).addChild(sRealDisplayName).setTitle("Show details of role '" + sRealDisplayName + "'");
        return new HCTextNode(sRealDisplayName);
    }
    if (aObject instanceof IUser) {
        final IUser aTypedObj = (IUser) aObject;
        final String sRealDisplayName = sDisplayName != null ? sDisplayName : SecurityHelper.getUserDisplayName(aTypedObj, aDisplayLocale);
        final String sMenuItemID = BootstrapPagesMenuConfigurator.MENU_ADMIN_SECURITY_USER;
        final IMenuObject aObj = aWPEC.getMenuTree().getItemDataWithID(sMenuItemID);
        if (aObj != null && aObj.matchesDisplayFilter())
            return new HCA(getViewLink(aWPEC, sMenuItemID, aTypedObj)).addChild(sRealDisplayName).setTitle("Show details of user '" + sRealDisplayName + "'");
        return new HCTextNode(sRealDisplayName);
    }
    if (aObject instanceof IUserGroup) {
        final IUserGroup aTypedObj = (IUserGroup) aObject;
        final String sRealDisplayName = sDisplayName != null ? sDisplayName : aTypedObj.getName();
        final String sMenuItemID = BootstrapPagesMenuConfigurator.MENU_ADMIN_SECURITY_USER_GROUP;
        final IMenuObject aObj = aWPEC.getMenuTree().getItemDataWithID(sMenuItemID);
        if (aObj != null && aObj.matchesDisplayFilter())
            return new HCA(getViewLink(aWPEC, sMenuItemID, aTypedObj)).addChild(sRealDisplayName).setTitle("Show details of user group '" + sRealDisplayName + "'");
        return new HCTextNode(sRealDisplayName);
    }
    // add other types as desired
    throw new IllegalArgumentException("Unsupported object: " + aObject);
}
Also used : Locale(java.util.Locale) IRole(com.helger.photon.security.role.IRole) IUserGroup(com.helger.photon.security.usergroup.IUserGroup) HCA(com.helger.html.hc.html.textlevel.HCA) IUser(com.helger.photon.security.user.IUser) IMenuObject(com.helger.photon.core.menu.IMenuObject) PDTToString(com.helger.commons.datetime.PDTToString) HCTextNode(com.helger.html.hc.impl.HCTextNode) Nonnull(javax.annotation.Nonnull)

Aggregations

IUserGroup (com.helger.photon.security.usergroup.IUserGroup)2 PDTToString (com.helger.commons.datetime.PDTToString)1 HCA (com.helger.html.hc.html.textlevel.HCA)1 HCTextNode (com.helger.html.hc.impl.HCTextNode)1 SMPDBExecutor (com.helger.phoss.smp.backend.sql.SMPDBExecutor)1 IMenuObject (com.helger.photon.core.menu.IMenuObject)1 RoleManagerJDBC (com.helger.photon.jdbc.security.RoleManagerJDBC)1 UserGroupManagerJDBC (com.helger.photon.jdbc.security.UserGroupManagerJDBC)1 UserManagerJDBC (com.helger.photon.jdbc.security.UserManagerJDBC)1 IRole (com.helger.photon.security.role.IRole)1 IRoleManager (com.helger.photon.security.role.IRoleManager)1 IUser (com.helger.photon.security.user.IUser)1 IUserManager (com.helger.photon.security.user.IUserManager)1 UserGroup (com.helger.photon.security.usergroup.UserGroup)1 UserGroupManager (com.helger.photon.security.usergroup.UserGroupManager)1 WebScoped (com.helger.web.scope.mgr.WebScoped)1 File (java.io.File)1 Locale (java.util.Locale)1 Nonnull (javax.annotation.Nonnull)1