Skip to content

Commit 093d922

Browse files
committed
[feature/crudcontext] review changes.
1 parent 49182f9 commit 093d922

File tree

5 files changed

+133
-8397
lines changed

5 files changed

+133
-8397
lines changed

api/utils/requestProcessor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ const processRequest = (params) => {
537537

538538
switch (paths[3]) {
539539
case 'create':
540-
validateUserForGlobalAdmin(params, countlyApi.mgmt.apps.createApp);
540+
validateCreate(params, 'global_applications', countlyApi.mgmt.apps.createApp);
541541
break;
542542
case 'update':
543543
if (paths[4] === 'plugins') {
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,53 @@
11
var pluginManager = require('../../../plugins/pluginManager.js'),
2-
async = require('async'),
3-
countlyDb = pluginManager.dbConnection();
4-
5-
countlyDb.collection('members').find({global_admin: {$ne: true}}).toArray(function(err, members) {
6-
if (!members && err) {
7-
console.log(err);
8-
countlyDb.close();
9-
return;
10-
}
11-
12-
function upgrade(member, done) {
13-
if (!member.admin_of || !member.user_of) {
14-
done();
2+
async = require('async');
3+
4+
pluginManager.dbConnection().then((countlyDb) => {
5+
countlyDb.collection('members').find({global_admin: {$ne: true}}).toArray(function(err, members) {
6+
if (!members && err) {
7+
console.log(err);
8+
countlyDb.close();
159
return;
1610
}
1711

18-
var writeAccess = member.admin_of;
19-
var readAccess = member.user_of;
20-
21-
var memberPermission = {
22-
"c": {},
23-
"r": {},
24-
"u": {},
25-
"d": {}
26-
};
27-
28-
writeAccess.forEach(app => {
29-
memberPermission.c[app] = {all: true};
30-
memberPermission.r[app] = {all: true};
31-
memberPermission.u[app] = {all: true};
32-
memberPermission.d[app] = {all: true};
33-
});
12+
function upgrade(member, done) {
13+
if (!member.admin_of || !member.user_of) {
14+
done();
15+
return;
16+
}
3417

35-
readAccess.forEach(app => {
36-
memberPermission.r[app] = {all: true};
37-
});
18+
var writeAccess = member.admin_of;
19+
var readAccess = member.user_of;
20+
21+
var memberPermission = {
22+
"c": {},
23+
"r": {},
24+
"u": {},
25+
"d": {}
26+
};
27+
28+
writeAccess.forEach(app => {
29+
memberPermission.c[app] = {all: true};
30+
memberPermission.r[app] = {all: true};
31+
memberPermission.u[app] = {all: true};
32+
memberPermission.d[app] = {all: true};
33+
});
34+
35+
readAccess.forEach(app => {
36+
memberPermission.r[app] = {all: true};
37+
});
38+
39+
countlyDb.collection('members').findAndModify({"_id": member._id}, {}, {$set: {permission: memberPermission}}, function(err, member) {
40+
if (err || !member) {
41+
console.log("Member not found.");
42+
}
43+
done();
44+
return;
45+
});
46+
}
3847

39-
countlyDb.collection('members').findAndModify({"_id": member._id}, {}, {$set: {permission: memberPermission}}, function(err, member) {
40-
if (err || !member) {
41-
console.log("Member not found.");
42-
}
43-
done();
44-
return;
48+
async.forEach(members, upgrade, function() {
49+
console.log("Finished upgrading member permissions.");
50+
countlyDb.close();
4551
});
46-
}
47-
48-
async.forEach(members, upgrade, function() {
49-
console.log("Finished upgrading member permissions.");
50-
countlyDb.close();
5152
});
52-
});
53+
});

extend/.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
# Except this file
44
!.gitignore
55
!aws_ses.example.js
6-
!mail.debug.example.js
6+
!mail.debug.example.js
7+
!mail.example.js

extend/mail.example.js

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
//file should be placed in countly/extend
2+
//edit this script and put it in countly/extend/mail.js to overwrite existing email templates and settings
3+
var nodemailer = require('nodemailer');
4+
var smtpTransport = require('nodemailer-smtp-transport');
5+
6+
//rename company
7+
var company = "Company";
8+
var email = "[email protected]";
9+
10+
module.exports = function(mail) {
11+
//define this if you need to send email from some third party service
12+
mail.smtpTransport = nodemailer.createTransport(smtpTransport({
13+
host: "myhost",
14+
secureConnection: true,
15+
port: 2525,
16+
auth: {
17+
user: "username",
18+
pass: "password"
19+
}
20+
}));
21+
22+
mail.sendMail = function(message, callback) {
23+
message.from = company + " <" + email + ">";
24+
mail.smtpTransport.sendMail(message, function(error) {
25+
if (error) {
26+
console.log('Error sending email');
27+
console.log(error.message);
28+
}
29+
if (callback) {
30+
callback(error);
31+
}
32+
});
33+
};
34+
35+
mail.sendMessage = function(to, subject, message, callback) {
36+
mail.sendMail({
37+
to: to,
38+
from: company + " <" + email + ">",
39+
subject: subject || "",
40+
html: message || ""
41+
}, callback);
42+
};
43+
44+
mail.sendToNewMember = function(member, memberPassword) {
45+
const password = mail.escapedHTMLString(memberPassword);
46+
47+
mail.lookup(function(err, host) {
48+
mail.sendMessage(member.email, "Your " + company + " Account",
49+
"Hi " + mail.getUserFirstName(member) + ",<br/><br/>\n" +
50+
"Your " + company + " account on <a href='" + host + "'>" + host + "</a> is created with the following details;<br/><br/>\n" +
51+
"Username: " + member.username + "<br/>Password: " + password + "<br/><br/>\n" +
52+
"Enjoy,<br/>A fellow " + company + " Admin");
53+
});
54+
};
55+
56+
mail.sendToUpdatedMember = function(member, memberPassword) {
57+
const password = mail.escapedHTMLString(memberPassword);
58+
59+
mail.lookup(function(err, host) {
60+
mail.sendMessage(member.email, "" + company + " Account - Password Change", "Hi " + mail.getUserFirstName(member) + ",<br/><br/>\n" +
61+
"Your password for your " + company + " account on <a href='" + host + "'>" + host + "</a> has been changed. Below you can find your updated account details;<br/><br/>\n" +
62+
"Username: " + member.username + "<br/>Password: " + password + "<br/><br/>\n" +
63+
"Best,<br/>A fellow " + company + " Admin");
64+
});
65+
};
66+
67+
mail.sendPasswordResetInfo = function(member, prid) {
68+
mail.lookup(function(err, host) {
69+
mail.sendMessage(member.email, "" + company + " Account - Password Reset", "Hi " + mail.getUserFirstName(member) + ",<br/><br/>\n" +
70+
"You can reset your " + company + " account password by following <a href='" + host + "/reset/" + prid + "'>this link</a>.<br/><br/>\n" +
71+
"If you did not request to reset your password ignore this email.<br/><br/>\n" +
72+
"Best,<br/>A fellow " + company + " Admin");
73+
});
74+
};
75+
76+
mail.sendAutomatedMessageError = function(member, link) {
77+
mail.lookup(function(err, host) {
78+
link = host + '/' + link;
79+
mail.sendMessage(member.email, company + " Automated Push Problem", "Hi " + mail.getUserFirstName(member) + ",,<br/><br/>\n" +
80+
"Your <a href=\"" + link + "\">automated message</a> cannot be sent due to a repeating error.\n" +
81+
"Please review message status and reactivate the message once the problem is resolved.<br/><br/>\n" +
82+
"Best,<br/>A fellow " + company + " Admin");
83+
});
84+
};
85+
};

0 commit comments

Comments
 (0)