diff options
Diffstat (limited to 'ui/imports/startup')
-rw-r--r-- | ui/imports/startup/both/config.js | 9 | ||||
-rw-r--r-- | ui/imports/startup/both/configs/accounts.js | 9 | ||||
-rw-r--r-- | ui/imports/startup/both/index.js | 10 | ||||
-rw-r--r-- | ui/imports/startup/client/index.js | 38 | ||||
-rw-r--r-- | ui/imports/startup/client/template-helpers.js | 32 | ||||
-rw-r--r-- | ui/imports/startup/server/config.js | 9 | ||||
-rw-r--r-- | ui/imports/startup/server/configs/accounts.js | 16 | ||||
-rw-r--r-- | ui/imports/startup/server/index.js | 13 | ||||
-rw-r--r-- | ui/imports/startup/server/register-api.js | 56 | ||||
-rw-r--r-- | ui/imports/startup/server/seeds.js | 10 | ||||
-rw-r--r-- | ui/imports/startup/server/seeds/constants.js | 68 | ||||
-rw-r--r-- | ui/imports/startup/server/seeds/users.js | 51 |
12 files changed, 321 insertions, 0 deletions
diff --git a/ui/imports/startup/both/config.js b/ui/imports/startup/both/config.js new file mode 100644 index 0000000..ac7c9a2 --- /dev/null +++ b/ui/imports/startup/both/config.js @@ -0,0 +1,9 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 './configs/accounts'; diff --git a/ui/imports/startup/both/configs/accounts.js b/ui/imports/startup/both/configs/accounts.js new file mode 100644 index 0000000..2653abe --- /dev/null +++ b/ui/imports/startup/both/configs/accounts.js @@ -0,0 +1,9 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 / +///////////////////////////////////////////////////////////////////////////////////////// + diff --git a/ui/imports/startup/both/index.js b/ui/imports/startup/both/index.js new file mode 100644 index 0000000..62d0ef5 --- /dev/null +++ b/ui/imports/startup/both/index.js @@ -0,0 +1,10 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 '/imports/api/simple-schema.init'; +import './config'; diff --git a/ui/imports/startup/client/index.js b/ui/imports/startup/client/index.js new file mode 100644 index 0000000..93da904 --- /dev/null +++ b/ui/imports/startup/client/index.js @@ -0,0 +1,38 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 './template-helpers.js'; + +import '/imports/ui/store/store'; +import '/imports/ui/components/landing/landing'; +import '/imports/ui/components/main/main'; +import '/imports/ui/components/loading/loading'; +import '/imports/ui/components/top-navbar-menu/top-navbar-menu'; +import '/imports/ui/components/environment/environment'; +import '/imports/ui/components/environment-wizard/environment-wizard'; +import '/imports/ui/components/scanning-request/scanning-request'; +import '/imports/ui/components/scheduled-scan/scheduled-scan'; +import '/imports/ui/components/project-dashboard/project-dashboard'; +import '/imports/ui/components/region-dashboard/region-dashboard'; +import '/imports/ui/components/zone-dashboard/zone-dashboard'; +import '/imports/ui/components/host-dashboard/host-dashboard'; +import '/imports/ui/components/aggregate-dashboard/aggregate-dashboard'; +import '/imports/ui/components/scans-list/scans-list'; +import '/imports/ui/components/scheduled-scans-list/scheduled-scans-list'; +import '/imports/ui/components/link-types-list/link-types-list'; +import '/imports/ui/components/link-type/link-type'; +import '/imports/ui/components/clique-types-list/clique-types-list'; +import '/imports/ui/components/clique-type/clique-type'; +import '/imports/ui/components/clique-constraints-list/clique-constraints-list'; +import '/imports/ui/components/clique-constraint/clique-constraint'; +import '/imports/ui/components/user-list/user-list'; +import '/imports/ui/components/user/user'; +import '/imports/ui/components/messages-list/messages-list'; +import '/imports/ui/components/message/message'; +import '/imports/ui/components/dashboard/dashboard'; +import '/imports/ui/components/new-scanning/new-scanning'; diff --git a/ui/imports/startup/client/template-helpers.js b/ui/imports/startup/client/template-helpers.js new file mode 100644 index 0000000..89023b6 --- /dev/null +++ b/ui/imports/startup/client/template-helpers.js @@ -0,0 +1,32 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 * as utils from '/imports/lib/utilities'; +import { Counter } from 'meteor/natestrauser:publish-performant-counts'; + +Template.registerHelper('asHash', function (params) { + return params.hash; +}); + +Template.registerHelper('idToStr', utils.idToStr); + +Template.registerHelper('rPath', function (source, pathStr) { + let path = R.split('.', pathStr); + return R.path(path, source); +}); + +Template.registerHelper('asArray', function (val) { + return [val]; +}); + +Template.registerHelper('countOf', function (name) { + if (name) { + return Counter.get(name); + } +}); diff --git a/ui/imports/startup/server/config.js b/ui/imports/startup/server/config.js new file mode 100644 index 0000000..ac7c9a2 --- /dev/null +++ b/ui/imports/startup/server/config.js @@ -0,0 +1,9 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 './configs/accounts'; diff --git a/ui/imports/startup/server/configs/accounts.js b/ui/imports/startup/server/configs/accounts.js new file mode 100644 index 0000000..f098233 --- /dev/null +++ b/ui/imports/startup/server/configs/accounts.js @@ -0,0 +1,16 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 / +///////////////////////////////////////////////////////////////////////////////////////// +Accounts.validateNewUser((_user) => { + let loggedInUser = Meteor.user(); + if (Roles.userIsInRole(loggedInUser, 'manage-users', Roles.GLOBAL_GROUP)) { + return true; + } + + throw new Meteor.Error(403, 'NotAuthorized to create new users'); +}); diff --git a/ui/imports/startup/server/index.js b/ui/imports/startup/server/index.js new file mode 100644 index 0000000..ee22e45 --- /dev/null +++ b/ui/imports/startup/server/index.js @@ -0,0 +1,13 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 / +///////////////////////////////////////////////////////////////////////////////////////// +// This defines all the collections, publications and methods that the application provides +// as an API to the client. +import './register-api.js'; +import './seeds.js'; +import './config.js'; diff --git a/ui/imports/startup/server/register-api.js b/ui/imports/startup/server/register-api.js new file mode 100644 index 0000000..3475c53 --- /dev/null +++ b/ui/imports/startup/server/register-api.js @@ -0,0 +1,56 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 '../../api/constants/server/publications'; + +import '../../api/environments/server/publications.js'; +import '../../api/environments/methods.js'; + +import '../../api/inventories/server/publications.js'; +import '../../api/inventories/server/methods.js'; + +import '../../api/scans/server/publications.js'; +import '../../api/scans/methods.js'; +import '../../api/scans/server/methods.js'; + +import '../../api/scheduled-scans/server/publications.js'; +import '../../api/scheduled-scans/methods.js'; +import '../../api/scheduled-scans/server/methods.js'; + +import '../../api/messages/server/publications'; +import '../../api/messages/server/methods'; +import '../../api/messages/methods.js'; + +import '../../api/cliques/server/publications'; +import '../../api/cliques/methods.js'; + +import '../../api/links/server/publications'; +import '../../api/links/methods.js'; + +import '../../api/statistics/server/publications'; +import '../../api/statistics/methods.js'; + +import '../../api/attributes_for_hover_on_data/server/publications'; +import '../../api/attributes_for_hover_on_data/methods.js'; + +import '../../api/link-types/server/publications'; +import '../../api/link-types/methods.js'; + +import '../../api/clique-types/server/publications'; +import '../../api/clique-types/methods.js'; + +import '../../api/clique-constraints/server/publications'; +import '../../api/clique-constraints/methods.js'; + +import '../../api/accounts/server/publications'; +import '../../api/accounts/methods'; + +import '../../api/supported_environments/server/publications'; +import '../../api/supported_environments/methods'; + +import '../../api/migrations/migrations'; diff --git a/ui/imports/startup/server/seeds.js b/ui/imports/startup/server/seeds.js new file mode 100644 index 0000000..a6132bf --- /dev/null +++ b/ui/imports/startup/server/seeds.js @@ -0,0 +1,10 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 './seeds/constants'; //disabled as of US2758. +import './seeds/users'; 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); |