aboutsummaryrefslogtreecommitdiffstats
path: root/ui/imports/startup/server/seeds
diff options
context:
space:
mode:
Diffstat (limited to 'ui/imports/startup/server/seeds')
-rw-r--r--ui/imports/startup/server/seeds/constants.js68
-rw-r--r--ui/imports/startup/server/seeds/users.js51
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);