diff options
Diffstat (limited to 'ui/imports/startup/server/seeds')
-rw-r--r-- | ui/imports/startup/server/seeds/constants.js | 68 | ||||
-rw-r--r-- | ui/imports/startup/server/seeds/users.js | 51 |
2 files changed, 119 insertions, 0 deletions
diff --git a/ui/imports/startup/server/seeds/constants.js b/ui/imports/startup/server/seeds/constants.js new file mode 100644 index 0000000..2d59d99 --- /dev/null +++ b/ui/imports/startup/server/seeds/constants.js @@ -0,0 +1,68 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / +// / +// All rights reserved. This program and the accompanying materials / +// are made available under the terms of the Apache License, Version 2.0 / +// which accompanies this distribution, and is available at / +// http://www.apache.org/licenses/LICENSE-2.0 / +///////////////////////////////////////////////////////////////////////////////////////// +import { Constants } from '/imports/api/constants/constants'; +import * as R from 'ramda'; +import { Distributions } from '/imports/api/constants/data/distributions'; +//import { NetworkPlugins } from './data/network-plugins'; +import { LogLevels } from '/imports/api/constants/data/log-levels'; +import { MechanismDrivers } from '/imports/api/constants/data/mechanism-drivers'; +import { ObjectTypesForLinks } from '/imports/api/constants/data/object-types-for-links'; +import { TypeDrivers } from '/imports/api/constants/data/type-drivers'; +import { EnvTypes } from '/imports/api/constants/data/env-types'; +import { Statuses as ScansStatuses } from '/imports/api/constants/data/scans-statuses'; +import { EnvironmentMonitoringTypes } from '/imports/api/constants/data/environment-monitoring-types'; +import { EnvProvisionTypes } from '/imports/api/constants/data/environment-provision-types'; +import { MessageSourceSystems } from '/imports/api/constants/data/message-source-systems'; + +let constantsDefaults = [{ + name: 'env_types', + values: EnvTypes +}, { + name: 'scans_statuses', + values: ScansStatuses +}, { + name: 'environment_monitoring_types', + values: EnvironmentMonitoringTypes +}, { + name: 'distributions', + values: Distributions +}, { + name: 'log_levels', + values: LogLevels +}, { + name: 'mechanism_drivers', + values: MechanismDrivers +}, { + name: 'object_types_for_links', + values: ObjectTypesForLinks +}, { + name: 'type_drivers', + values: TypeDrivers +}, { + name: 'environment_provision_types', + values: EnvProvisionTypes +}, { + name: 'message_source_systems', + values: MessageSourceSystems +}]; + +if (Meteor.server) { + R.forEach((def) => { + insertConstants(Constants, def.name, def.values); + }, constantsDefaults); +} + +function insertConstants(collection, name, values) { + if (collection.find({ name: name}).count() === 0) { + Constants.insert({ + name: name, + data: values + }); + } +} diff --git a/ui/imports/startup/server/seeds/users.js b/ui/imports/startup/server/seeds/users.js new file mode 100644 index 0000000..34c20c6 --- /dev/null +++ b/ui/imports/startup/server/seeds/users.js @@ -0,0 +1,51 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / +// / +// All rights reserved. This program and the accompanying materials / +// are made available under the terms of the Apache License, Version 2.0 / +// which accompanies this distribution, and is available at / +// http://www.apache.org/licenses/LICENSE-2.0 / +///////////////////////////////////////////////////////////////////////////////////////// +import * as R from 'ramda'; +import { Roles } from 'meteor/alanning:roles'; + +let users = [ + { + username: 'admin', + name: 'admin', + email: 'admin@example.com', + password: '123456', + roles: [ + { role: 'manage-users', group: Roles.GLOBAL_GROUP }, + { role: 'manage-link-types', group: Roles.GLOBAL_GROUP }, + { role: 'manage-clique-types', group: Roles.GLOBAL_GROUP }, + { role: 'manage-clique-constraints', group: Roles.GLOBAL_GROUP }, + { role: 'view-env', group: Roles.GLOBAL_GROUP }, + { role: 'edit-env', group: Roles.GLOBAL_GROUP }, + ] + } +]; + +R.forEach((user) => { + let id; + let userDb = Meteor.users.findOne({ username: user.username }); + if (R.isNil(userDb)) { + console.log('creating user', user); + id = Accounts.createUser({ + username: user.username, + email: user.email, + password: user.password, + profile: { name: user.name } + }); + } else { + id = userDb._id; + } + + if (user.roles.length > 0) { + console.log('adding roles to user', user, user.roles); + + R.forEach((roleItem) => { + Roles.addUsersToRoles(id, roleItem.role, roleItem.group); + }, user.roles); + } +}, users); |