1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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);
});
|