passbolt-styleguide
Version:
Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.
143 lines (136 loc) • 3.54 kB
JavaScript
/**
* Passbolt ~ Open source password manager for teams
* Copyright (c) 2023 Passbolt SA (https://www.passbolt.com)
*
* Licensed under GNU Affero General Public License version 3 of the or any later version.
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) 2023 Passbolt SA (https://www.passbolt.com)
* @license https://opensource.org/licenses/AGPL-3.0 AGPL License
* @link https=//www.passbolt.com Passbolt(tm)
* @since 4.0.0
*/
import { v4 as uuid } from "uuid";
/**
* User directory modal test data.
* @returns {object}
*/
export const mockedDefaultData = (data = {}) => {
const userId = uuid();
const defaultData = {
openCredentials: true,
openDirectoryConfiguration: false,
openSynchronizationOptions: false,
source: "default",
directoryType: "ad",
connectionType: "plain",
host: "",
hostError: null,
port: "389",
portError: null,
username: "",
password: "",
domain: "",
domainError: null,
baseDn: "",
groupPath: "",
userPath: "",
groupCustomFilters: "",
userCustomFilters: "",
groupObjectClass: "",
userObjectClass: "",
useEmailPrefix: false,
emailPrefix: "",
emailSuffix: "",
defaultAdmin: userId,
defaultGroupAdmin: userId,
groupsParentGroup: "",
usersParentGroup: "",
enabledUsersOnly: false,
createUsers: true,
deleteUsers: true,
updateUsers: true,
createGroups: true,
deleteGroups: true,
updateGroups: true,
userDirectoryToggle: false,
authenticationType: "basic",
fieldsMapping: defaultFieldsMapping(data.fieldsMapping),
fallbackFields: defaultFallbackFields(data.fallbackFields),
deleteUserBehavior: "delete",
};
delete data.fieldsMapping;
return Object.assign(defaultData, data);
};
export const mockedData = (data = {}) => {
const defaultData = mockedDefaultData({
baseDn: "DC=passbolt,DC=local",
domain: "passbolt.local",
password: "password",
host: "127.0.0.1",
username: "username",
userDirectoryToggle: true,
fieldsMapping: data.fieldsMapping,
});
delete data.fieldsMapping;
return Object.assign(defaultData, data);
};
export const defaultFieldsMapping = (data = {}) => ({
ad: {
user: Object.assign(
{
id: "objectGuid",
firstname: "givenName",
lastname: "sn",
username: "mail",
created: "whenCreated",
modified: "whenChanged",
groups: "memberOf",
enabled: "userAccountControl",
},
data?.ad?.user,
),
group: Object.assign(
{
id: "objectGuid",
name: "cn",
created: "whenCreated",
modified: "whenChanged",
users: "member",
},
data?.ad?.group,
),
},
openldap: {
user: Object.assign(
{
id: "entryUuid",
firstname: "givenname",
lastname: "sn",
username: "mail",
created: "createtimestamp",
modified: "modifytimestamp",
},
data?.openldap?.user,
),
group: Object.assign(
{
id: "entryUuid",
name: "cn",
created: "createtimestamp",
modified: "modifytimestamp",
users: "uniqueMember",
},
data?.openldap?.group,
),
},
});
export const defaultFallbackFields = (data = {}) => ({
ad: Object.assign(
{
username: "",
},
data?.ad,
),
});