All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencms.db.CmsDefaultUsers Maven / Gradle / Ivy

Go to download

OpenCms is an enterprise-ready, easy to use website content management system based on Java and XML technology. Offering a complete set of features, OpenCms helps content managers worldwide to create and maintain beautiful websites fast and efficiently.

There is a newer version: 17.0
Show newest version
/*
 * This library is part of OpenCms -
 * the Open Source Content Management System
 *
 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * For further information about Alkacon Software GmbH & Co. KG, please see the
 * company website: http://www.alkacon.com
 *
 * For further information about OpenCms, please see the
 * project website: http://www.opencms.org
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package org.opencms.db;

import org.opencms.main.CmsRuntimeException;
import org.opencms.security.CmsOrganizationalUnit;
import org.opencms.util.CmsStringUtil;

/**
 * Provides access to the names of the OpenCms default users and groups.

* * @since 6.0.0 */ public class CmsDefaultUsers { /** Default name for the "Administrators" group. */ protected static final String DEFAULT_GROUP_ADMINISTRATORS = "Administrators"; /** Default name for the "Guests" group. */ protected static final String DEFAULT_GROUP_GUESTS = "Guests"; /** Default name for the "Users" group. */ protected static final String DEFAULT_GROUP_USERS = "Users"; /** Default name for the "Admin" user. */ protected static final String DEFAULT_USER_ADMIN = "Admin"; /** Default name for the "Deleted Resource" user. */ protected static final String DEFAULT_USER_DELETED_RESOURCE = "Admin"; /** Default name for the "Export" user. */ protected static final String DEFAULT_USER_EXPORT = "Export"; /** Default name for the "Guest" user. */ protected static final String DEFAULT_USER_GUEST = "Guest"; /** Administrators group name. */ private String m_groupAdministrators; /** Guests group name. */ private String m_groupGuests; /** System Users group name. */ private String m_groupUsers; /** Administrator user name. */ private String m_userAdmin; /** Deleted resource user name. */ private String m_userDeletedResource; /** Export user name. */ private String m_userExport; /** Guest user name. */ private String m_userGuest; /** * Constructor that initializes all names with default values.

* * See the constants of this class for the defaule values that are uses.

*/ public CmsDefaultUsers() { m_userAdmin = DEFAULT_USER_ADMIN; m_userGuest = DEFAULT_USER_GUEST; m_userExport = DEFAULT_USER_EXPORT; m_userDeletedResource = DEFAULT_USER_DELETED_RESOURCE; m_groupAdministrators = DEFAULT_GROUP_ADMINISTRATORS; m_groupUsers = DEFAULT_GROUP_USERS; m_groupGuests = DEFAULT_GROUP_GUESTS; } /** * Public constructor.

* * @param userAdmin the name of the default admin user * @param userGuest the name of the guest user * @param userExport the name of the export user * @param userDeletedResource the name of the deleted resource user, can be null * @param groupAdministrators the name of the administrators group * @param groupUsers the name of the users group * @param groupGuests the name of the guests group */ public CmsDefaultUsers( String userAdmin, String userGuest, String userExport, String userDeletedResource, String groupAdministrators, String groupUsers, String groupGuests) { init(userAdmin, userGuest, userExport, userDeletedResource, groupAdministrators, groupUsers, groupGuests); } /** * Returns the name of the administrators group.

* * @return the name of the administrators group */ public String getGroupAdministrators() { return m_groupAdministrators; } /** * Returns the name of the guests group.

* * @return the name of the guests group */ public String getGroupGuests() { return m_groupGuests; } /** * Returns the name of the project managers group.

* * @return the name of the project managers group * * @deprecated * As of OpenCms 9.5, there is no default group for project managers anymore. * Use the role {@link org.opencms.security.CmsRole#PROJECT_MANAGER} instead in case you want a user to be able to manage projects. * For backward compatibility in old installations, this returns the old default group name "Projectmanagers". */ @Deprecated public String getGroupProjectmanagers() { return "Projectmanagers"; } /** * Returns the name of the users group.

* * @return the name of the users group */ public String getGroupUsers() { return m_groupUsers; } /** * Returns the name of the default administrator user.

* * @return the name of the default administrator user */ public String getUserAdmin() { return m_userAdmin; } /** * Returns the name of the default deleted resource user.

* * @return the name of the default deleted resource user */ public String getUserDeletedResource() { return m_userDeletedResource; } /** * Returns the name of the user used to generate the static export.

* * @return the name of the user used to generate the static export */ public String getUserExport() { return m_userExport; } /** * Returns the name of the default guest user.

* * @return the name of the default guest user */ public String getUserGuest() { return m_userGuest; } /** * Checks if a given group name is the name of one of the OpenCms default groups.

* * @param groupName the group name to check * @return true if group name is one of OpenCms default groups, false if it is not * or if groupName is null or an empty string (no trim) * * @see #getGroupAdministrators() * @see #getGroupUsers() * @see #getGroupGuests() */ public boolean isDefaultGroup(String groupName) { if (CmsStringUtil.isEmptyOrWhitespaceOnly(groupName)) { return false; } // first check without ou prefix, to stay backwards compatible boolean isDefault = m_groupAdministrators.equals(groupName); isDefault = isDefault || m_groupGuests.equals(groupName); isDefault = isDefault || m_groupUsers.equals(groupName); // Administrators and Guests groups have no special status in sub-OUs, but the Users group does isDefault = isDefault || groupName.equals(CmsOrganizationalUnit.SEPARATOR + m_groupAdministrators); isDefault = isDefault || groupName.equals(CmsOrganizationalUnit.SEPARATOR + m_groupGuests); isDefault = isDefault || groupName.endsWith(CmsOrganizationalUnit.SEPARATOR + m_groupUsers); return isDefault; } /** * Checks if a given user name is the name of one of the OpenCms default users.

* * @param userName the group name to check * * @return true if user name is one of OpenCms default users, false if it is not * or if userName is null or an empty string (no trim) * * @see #getUserAdmin() * @see #getUserExport() * @see #getUserGuest() * @see #getUserDeletedResource() */ public boolean isDefaultUser(String userName) { if (CmsStringUtil.isEmptyOrWhitespaceOnly(userName)) { return false; } // first check without ou prefix, to stay backwards compatible boolean isDefault = m_userAdmin.equals(userName); isDefault = isDefault || m_userGuest.equals(userName); isDefault = isDefault || m_userExport.equals(userName); isDefault = isDefault || m_userDeletedResource.equals(userName); // now check with ou prefix isDefault = isDefault || userName.equals(CmsOrganizationalUnit.SEPARATOR + m_userAdmin); isDefault = isDefault || userName.equals(CmsOrganizationalUnit.SEPARATOR + m_userGuest); isDefault = isDefault || userName.equals(CmsOrganizationalUnit.SEPARATOR + m_userExport); isDefault = isDefault || userName.equals(CmsOrganizationalUnit.SEPARATOR + m_userDeletedResource); return isDefault; } /** * Checks if a given group name is the name of the guests group.

* * @param groupName the group name to check * * @return true if a given group name is the name of the guests group */ public boolean isGroupGuests(String groupName) { if (CmsStringUtil.isEmptyOrWhitespaceOnly(groupName)) { return false; } return m_groupGuests.equals(groupName) || groupName.endsWith(CmsOrganizationalUnit.SEPARATOR + m_groupGuests); } /** * Checks if a given user name is the name of the admin user.

* * @param userName the user name to check * * @return true if a given user name is the name of the admin user */ public boolean isUserAdmin(String userName) { if (CmsStringUtil.isEmptyOrWhitespaceOnly(userName)) { return false; } return m_userAdmin.equals(userName); } /** * Checks if a given user name is the name of the export user.

* * @param userName the user name to check * * @return true if a given user name is the name of the export user */ public boolean isUserExport(String userName) { if (CmsStringUtil.isEmptyOrWhitespaceOnly(userName)) { return false; } return m_userExport.equals(userName); } /** * Checks if a given user name is the name of the guest user.

* * @param userName the user name to check * * @return true if a given user name is the name of the guest user */ public boolean isUserGuest(String userName) { if (CmsStringUtil.isEmptyOrWhitespaceOnly(userName)) { return false; } return m_userGuest.equals(userName); } /** * Initializes this instance.

* * @param userAdmin the name of the default admin user * @param userGuest the name of the guest user * @param userExport the name of the export user * @param userDeletedResource the name of the deleted resource user, can be null * @param groupAdministrators the name of the administrators group * @param groupUsers the name of the users group * @param groupGuests the name of the guests group */ protected void init( String userAdmin, String userGuest, String userExport, String userDeletedResource, String groupAdministrators, String groupUsers, String groupGuests) { // check if all required user and group names are not null or empty if (CmsStringUtil.isEmptyOrWhitespaceOnly(userAdmin) || CmsStringUtil.isEmptyOrWhitespaceOnly(userGuest) || CmsStringUtil.isEmptyOrWhitespaceOnly(userExport) || CmsStringUtil.isEmptyOrWhitespaceOnly(groupAdministrators) || CmsStringUtil.isEmptyOrWhitespaceOnly(groupUsers) || CmsStringUtil.isEmptyOrWhitespaceOnly(groupGuests)) { throw new CmsRuntimeException(Messages.get().container(Messages.ERR_USER_GROUP_NAMES_EMPTY_0)); } // set members m_userAdmin = userAdmin.trim(); m_userGuest = userGuest.trim(); m_userExport = userExport.trim(); if (CmsStringUtil.isEmptyOrWhitespaceOnly(userDeletedResource)) { m_userDeletedResource = userAdmin; } else { m_userDeletedResource = userDeletedResource.trim(); } m_groupAdministrators = groupAdministrators.trim(); m_groupUsers = groupUsers.trim(); m_groupGuests = groupGuests.trim(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy