From b88c78e3cf2bef22aa2f1c4d0bf305e303bc15f0 Mon Sep 17 00:00:00 2001 From: Koren Lev Date: Thu, 27 Jul 2017 16:42:15 +0300 Subject: adding calipso ui Change-Id: Ifa6f63daebb07f45580f747341960e898fdb00c4 Signed-off-by: Koren Lev --- ui/imports/api/environments/server/publications.js | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 ui/imports/api/environments/server/publications.js (limited to 'ui/imports/api/environments/server/publications.js') diff --git a/ui/imports/api/environments/server/publications.js b/ui/imports/api/environments/server/publications.js new file mode 100644 index 0000000..667ee8e --- /dev/null +++ b/ui/imports/api/environments/server/publications.js @@ -0,0 +1,102 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// 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 { Meteor } from 'meteor/meteor'; +import * as R from 'ramda'; +import { Roles } from 'meteor/alanning:roles'; + +import { Environments } from '../environments.js'; + +Meteor.publish('environments_config', function () { + console.log('server subscribtion to: environments_config'); + let userId = this.userId; + + let query = { + type: 'environment', + }; + + if (! Roles.userIsInRole(userId, 'view-env', null)) { + query = R.merge(query, { + 'auth.view-env': { + $in: [ userId ] + } + }); + } + + console.log('-query: ', R.toString(query)); + return Environments.find(query); +}); + +const subsEnvViewEnvUserId = 'environments.view-env&userId'; +Meteor.publish(subsEnvViewEnvUserId, function (userId) { + console.log(`subscription - ${subsEnvViewEnvUserId} `); + console.log(`-userId: ${R.toString(userId)}`); + + let query = {}; + + let currentUser = this.userId; + if (! Roles.userIsInRole(currentUser, 'manage-users', Roles.GLOBAL_GROUP)) { + console.log(`* error: unauth`); + console.log(`- currentUser: ${R.toString(currentUser)}`); + this.error('unauthorized for this subscription'); + return; + } + + query = R.merge(query, { + 'auth.view-env': { + $in: [ userId ] + } + }); + + console.log(`* query: ${R.toString(query)}`); + return Environments.find(query); +}); + +const subsEnvEditEnvUserId = 'environments.edit-env&userId'; +Meteor.publish(subsEnvEditEnvUserId, function (userId) { + console.log(`subscription - ${subsEnvEditEnvUserId} `); + console.log(`-userId: ${R.toString(userId)}`); + let query = {}; + + let currentUser = this.userId; + if (! Roles.userIsInRole(currentUser, 'manage-users', Roles.GLOBAL_GROUP)) { + console.log(`* error: unauth`); + console.log(`- currentUser: ${R.toString(currentUser)}`); + this.error('unauthorized for this subscription'); + return; + } + + query = R.merge(query, { + 'auth.edit-env': { + $in: [ userId ] + } + }); + + console.log(`* query: ${R.toString(query)}`); + return Environments.find(query); +}); + +Meteor.publish('environments?name', function (name) { + console.log('server subscribtion to: environments?name=' + name.toString()); + let query = { + name: name, + user: this.userId + }; + return Environments.find(query); +}); + +Meteor.publish('environments?_id', function (_id) { + console.log('server subscribtion to: environments?_id'); + console.log('-_id: ', R.toString(_id)); + + let query = { + _id: _id, + user: this.userId + }; + return Environments.find(query); +}); -- cgit 1.2.3-korg