Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function isOwn(e, s, r) {
- return e.isAuthenticated() && s == r ? !0 : !1;
- }
- function findUserValues(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h) {
- var f = {};
- addresses.find({
- _id: {
- $in: o
- }
- }, function(o, g) {
- o ? (logger.log("error", ERRMSG + "user addresses", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your address "), s.redirect("/")) : (f.address = g,
- addresses.find({
- _id: {
- $in: i
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "previous user addresses", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your previous addresses"), s.redirect("/")) : (f.previousaddresses = i,
- dates.find({
- _id: {
- $in: n
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "user dates", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your dates"), s.redirect("/")) : (f.dates = i, roles.find({
- _id: {
- $in: t
- }
- }, function(o, i) {
- if (o) {
- logger.log("error", ERRMSG + "user roles", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your user roles"), s.redirect("/");
- } else {
- f.roles = i;
- var n = [];
- for (var t in i) {
- n.push(i[t].startdate);
- }
- dates.find({
- _id: {
- $in: n
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "user roles dates", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your user role dates"), s.redirect("/")) : (f.roles_dates = i,
- roles.find({
- _id: {
- $in: u
- }
- }, function(o, i) {
- if (o) {
- logger.log("error", ERRMSG + "previous user roles", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your previous user roles"), s.redirect("/");
- } else {
- f.previousroles = i;
- var n = [];
- for (var t in i) {
- n.push(i[t].startdate), n.push(i[t].enddate);
- }
- dates.find({
- _id: {
- $in: n
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "previous user roles dates", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your previous role dates"), s.redirect("/")) : (f.previousroles_dates = i,
- payments.find({
- _id: {
- $in: d
- }
- }, function(o, i) {
- if (o) {
- logger.log("error", ERRMSG + "user payments", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your payments"), s.redirect("/");
- } else {
- f.payments = i;
- var n = [];
- for (var t in i) {
- n.push(i[t].date);
- }
- dates.find({
- _id: {
- $in: n
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "user payment dates", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your payments dates"), s.redirect("/")) : (f.payments_dates = i,
- names.find({
- _id: {
- $in: m
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "user names", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your name"), s.redirect("/")) : (f.name = i, names.find({
- _id: {
- $in: l
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "previous user names", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your previous names"), s.redirect("/")) : (f.previousnames = i,
- roles_description.find({
- use: !0
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "role descriptions", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG = "role descriptions"), s.redirect("/")) : (f.role_descriptions = i,
- phones.find({
- _id: {
- $in: p
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "user phone numbers", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your phone number"), s.redirect("/")) : (f.phones = i,
- phones.find({
- _id: {
- $in: c
- }
- }, function(o, i) {
- o ? (logger.log("error", ERRMSG + "user previous phone numbers", {
- Error: o,
- Action: a
- }), e.flash("error", ERRMSG + "your previous phone numbers"), s.redirect("/")) : (f.previousphonenumbers = i,
- h(e, s, r, f));
- }));
- }));
- }));
- }));
- }));
- });
- }
- }));
- });
- }
- }));
- });
- }
- }));
- }));
- }));
- });
- }
- function retrieveProfile(e, s, r) {
- var a = e.params.name, o = !1;
- e.query && e.query.editable && "true" == e.query.editable && e.isAuthenticated() && e.user && (o = !0),
- users.findOne({
- username: a
- }, function(a, i) {
- a ? (logger.log("error", "Cannot find user during a user profile view: ", {
- Error: a,
- AffectedUser: e.params.name
- }), e.flash("error", "There was an error when finding the user account "), s.status(500),
- s.redirect("/")) : i ? findUserValues(e, s, r, "A user tried to view a user profile ", [ i.address ], i.previousaddresses, i.dates, i.roles, i.previousroles, i.payments, [ i.name ], i.previousnames, i.phones, i.previousphonenumbers, function(e, s, r, a) {
- var n = {}, t = !1, u = !1, d = 1, m = 0, l = !1;
- e.isAuthenticated() && e.user && (t = isOwn(e, e.user.username, i.username)), t === !0 && permissions.check(r, [ permissionsList.permissions.edit_own_normal ]) ? u = !0 : permissions.checkOr(r, [ permissionsList.permissions.edit_any_normal, permissionsList.permissions.edit_refractortest ]) && (u = !0),
- (permissions.check(r, [ permissionsList.permissions.delete_any ]) || permissions.check(r, [ permissionsList.permissions.delete_own ]) && t || permissions.check(r, [ permissionsList.permissions.membership ])) && (logger.log("debug", "User can view membership information "),
- l = !0);
- for (var p in userKeys) {
- if ("address" == userKeys[p] || "name" == userKeys[p]) {
- var c = getInformationFromCollection(userKeys[p], r, t, a, null);
- null != c && void 0 != c && "" != c && (n[userKeys[p]] = c);
- } else {
- if ("previousaddresses" == userKeys[p]) {
- n = getInformationFromCollectionArray(userKeys[p], "previous_address_", "address", r, t, a, n, null, 1)[0];
- } else {
- if ("dates" == userKeys[p]) {
- var h = getDateFromCollection(a.dates, !0);
- for (var f in h) {
- n[f] = h[f];
- }
- } else {
- if ("payments" == userKeys[p]) {
- if (0 != a[userKeys[p]].length && 1 == permissions.check(r, [ permissions.getFieldPermission("payments", t)[1] ])) {
- var g = 1;
- for (var y in a.payments) {
- n["payment_" + (g + "")] = {};
- for (var v in keys.payments) {
- if ("__v" != keys.payments[v] && "date" != keys.payments[v]) {
- n["payment_" + (g + "")][keys.payments[v]] = {
- value: a.payments[y][keys.payments[v]],
- editable: 0
- };
- } else {
- if ("date" == keys.payments[v]) {
- for (var b in a.payments_dates) {
- if (a.payments_dates[b]._id + "" == a.payments[y].date + "") {
- var h = getDateFromCollection([ a.payments_dates[b] ], !1);
- for (var w in h.date_1) {
- n["payment_" + (g + "")][keys.payments[v] + "_" + w] = h.date_1[w];
- }
- break;
- }
- }
- }
- }
- }
- g++;
- }
- }
- } else {
- if ("roles" == userKeys[p]) {
- if (0 != a[userKeys[p]].length && 1 == permissions.check(r, [ permissions.getFieldPermission("roles", t)[1] ])) {
- var _ = 1;
- for (var A in a.roles) {
- n["role_" + (_ + "")] = {};
- for (var k in a.role_descriptions) {
- if (a.role_descriptions[k]._id + "" == a.roles[A].role + "") {
- for (var E in keys.roles_description) {
- "__v" != keys.roles_description[E] && "use" != keys.roles_description[E] && (n["role_" + (_ + "")][keys.roles_description[E]] = {
- value: a.role_descriptions[k][keys.roles_description[E]]
- }, 1 == permissions.check(r, [ permissions.getFieldPermission("roles", t)[0] ]) ? (n["role_" + (_ + "")][keys.roles_description[E]].editable = 2,
- n["role_" + (_ + "")][keys.roles_description[E]].location = "/admin/roles/show") : n["role_" + (_ + "")][keys.roles_description[E]].editable = 0);
- }
- }
- }
- for (var U in a.roles_dates) {
- if (a.roles_dates[U]._id + "" == a.roles[A].startdate + "") {
- var h = getDateFromCollection([ a.roles_dates[U] ], !1);
- for (var T in h.date_1) {
- n["role_" + (_ + "")]["start_date_" + T] = h.date_1[T];
- }
- break;
- }
- }
- _++;
- }
- }
- } else {
- if ("previousroles" == userKeys[p]) {
- if (0 != a.previousroles.length && 1 == permissions.check(r, [ permissions.getFieldPermission("previousroles", t)[1] ])) {
- var P = 1;
- for (var K in a.previousroles) {
- n["previous_role_" + (P + "")] = {};
- for (var k in a.role_descriptions) {
- if (a.role_descriptions[k]._id + "" == a.previousroles[K].role + "") {
- for (var E in keys.roles_description) {
- "__v" != keys.roles_description[E] && "use" != keys.roles_description[E] && (n["previous_role_" + (P + "")][keys.roles_description[E]] = {
- value: a.role_descriptions[k][keys.roles_description[E]],
- editable: 0
- });
- }
- }
- }
- for (var U in a.previousroles_dates) {
- if (a.previousroles_dates[U]._id + "" == a.previousroles[A].startdate + "") {
- var h = getDateFromCollection([ a.previousroles_dates[U] ], !1);
- for (var T in h.date_1) {
- n["previous_role_" + (P + "")]["start_date_" + T] = h.date_1[T];
- }
- }
- if (a.previousroles_dates[U]._id + "" == a.previousroles[A].enddate + "") {
- var h = getDateFromCollection([ a.previousroles_dates[U] ], !1);
- for (var T in h.date_1) {
- n["previous_role_" + (P + "")]["end_date_" + T] = h.date_1[T];
- }
- }
- }
- P++;
- }
- }
- } else {
- if ("previousnames" == userKeys[p]) {
- n = getInformationFromCollectionArray(userKeys[p], "previous_names_", "name", r, t, a, n, null, 1)[0];
- } else {
- if ("phones" == userKeys[p]) {
- phonesInformation = getInformationFromCollectionArray(userKeys[p], "phone_number_", "phones", r, t, a, n, null, d),
- n = phonesInformation[0], d = phonesInformation[1];
- } else {
- if ("previousphonenumbers" == userKeys[p]) {
- n = getInformationFromCollectionArray(userKeys[p], "previous_phone_number_", "phones", r, t, a, n, null, 1)[0];
- } else {
- if ("password" == userKeys[p]) {
- permissions.check(r, [ permissionsList.permissions.edit_any_password ]) ? m = 2 : t === !0 && (m = 1);
- } else {
- if ("membershipapproved" == userKeys[p] || "permissions" == userKeys[p]) {
- var S = null;
- "permissions" == userKeys[p] ? S = "/admin/permissions/list" : "membershipapproved" == userKeys[p] && (S = "/admin/membership"),
- null == i[userKeys[p]] || void 0 == i[userKeys[p]] || "" == i[userKeys[p]] && i[userKeys[p]] !== !1 && 0 !== i[userKeys[p]] || 1 != permissions.check(r, [ permissions.getFieldPermission(userKeys[p], t)[1] ]) || ("permissions" == userKeys[p] ? n[userKeys[p]] = informationFromArray([ i[userKeys[p]] ], userKeys[p], S, r, t) : "membershipapproved" == userKeys[p] && (n[userKeys[p]] = informationFromArray([ STATUSNUMBERMEANINGS[i[userKeys[p]] + ""] ], userKeys[p], S, r, t)));
- } else {
- "previousemails" == userKeys[p] || "emails" == userKeys[p] ? null == i[userKeys[p]] || void 0 == i[userKeys[p]] || "" == i[userKeys[p]] && i[userKeys[p]] !== !1 && 0 !== i[userKeys[p]] || 1 != permissions.check(r, [ permissions.getFieldPermission(userKeys[p], t)[1] ]) || (n[userKeys[p]] = informationFromArray(i[userKeys[p]], userKeys[p], null, r, t)) : ("refractortest" == userKeys[p] || "BAA" == userKeys[p] || "FRAS" == userKeys[p]) && (null == i[userKeys[p]] || void 0 == i[userKeys[p]] || "" == i[userKeys[p]] && i[userKeys[p]] !== !1 && 0 !== i[userKeys[p]] || 1 != permissions.check(r, [ permissions.getFieldPermission(userKeys[p], t)[1] ]) || (n[userKeys[p]] = informationFromArray([ i[userKeys[p]] ], userKeys[p], null, r, t)));
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- if (0 == permissions.check(r, [ permissions.getFieldPermission("username", t)[1] ])) {
- e.flash("error", "You do not have permission to view this profile "), s.redirect("/");
- } else {
- var R = [ "makeURL.js" ];
- u === !0 && R.push("userTemplate.js"), s.render(path.resolve("./templates/userTemplate.pug"), {
- title: i.username + " Profile",
- base: {
- path: "/profile/" + e.params.name,
- target: "_self"
- },
- styles: [ "userTemplate.css" ],
- scripts: R,
- userInformation: n,
- editable: o + "",
- editPassword: m,
- membership: l,
- selfPlaceTitle: "true",
- phone_count: d,
- canEdit: u + "",
- capitalise: capitalise
- });
- }
- }) : (e.flash("error", "There is no user with the specified user name"), s.redirect("/"));
- });
- }
- function getInformationFromCollection(e, s, r, a, o) {
- if (0 != a[e].length) {
- if (null != a[e][0] && void 0 != a[e][0] && "" != a[e][0] && 1 == permissions.check(s, [ permissions.getFieldPermission(e, r)[1] ])) {
- var i = a[e][0], n = {};
- for (var t in keys[e]) {
- "_id" != keys[e][t] && "__v" != keys[e][t] && (n[keys[e][t]] = {
- value: i[keys[e][t]]
- }, 1 == permissions.check(s, [ permissions.getFieldPermission(e, r)[0] ]) ? null == o || void 0 == o || "" == o ? n[keys[e][t]].editable = 1 : (n[keys[e][t]].editable = 2,
- n[keys[e][t]].location = o) : n[keys[e][t]].editable = 0);
- }
- return n;
- }
- return null;
- }
- return null;
- }
- function getInformationFromCollectionArray(e, s, r, a, o, i, n, t, u) {
- if (0 != i[e].length && 1 == permissions.check(a, [ permissions.getFieldPermission(e, o)[1] ])) {
- for (var d in i[e]) {
- n[s + (u + "")] = {};
- for (var m in keys[r]) {
- "_id" != keys[r][m] && "__v" != keys[r][m] && (n[s + (u + "")][keys[r][m]] = {
- value: i[e][d][keys[r][m]]
- }, 1 == permissions.check(a, [ permissions.getFieldPermission(e, o)[0] ]) ? null == t || void 0 == t || "" == t ? n[s + (u + "")][keys[r][m]].editable = 1 : (n[s + (u + "")][keys[r][m]].editable = 2,
- n[s + (u + "")][keys[r][m]].location = t) : n[s + (u + "")][keys[r][m]].editable = 0);
- }
- u++;
- }
- }
- return [ n, u ];
- }
- function getDateFromCollection(e, s) {
- var r = {}, a = {};
- for (var o in dateTypes) {
- a[dateTypes[o]] = 1;
- }
- if (0 != e.length) {
- for (var i in e) {
- var n = "";
- n = 1 == s ? "date_" + e[i].type + "_" + (a[e[i].type] + "") : "date_" + (a[e[i].type] + ""),
- r[n] = {};
- for (var t in keys.dates) {
- "_id" != keys.dates[t] && "__v" != keys.dates[t] && "type" != keys.dates[t] && (r[n][keys.dates[t]] = {
- value: e[i][keys.dates[t]],
- editable: 0
- });
- }
- a[e[i].type]++;
- }
- return r;
- }
- return null;
- }
- function informationFromArray(e, s, r, a, o) {
- var i = {}, n = 1;
- return e.forEach(function(e) {
- i[n + ""] = {
- value: e
- }, 1 == permissions.check(a, [ permissions.getFieldPermission(s, o)[0] ]) ? null == r || void 0 == r || "" == r ? i[n + ""].editable = 1 : (i[n + ""].editable = 2,
- i[n + ""].location = r) : i[n + ""].editable = 0, n++;
- }), i;
- }
- function NEWshowProfiles(e, s, r) {
- var a = {};
- users.find({}, function(o, i) {
- if (o) {
- logger.log("error", "There was an error whilst finding a list of users ", {
- Error: o
- }), e.flash("error", "There was an error finding the users "), s.redirect("/");
- } else {
- var n = [], t = [], u = [], d = [], m = [], l = [], p = [], c = [], h = [], f = [];
- for (var g in i) {
- n.push(i[g].address), void 0 != i[g].previousaddresses && null != i[g].previousaddresses && "" != i[g].previousaddresses && i[g].previousaddresses.forEach(function(e) {
- t.push(e);
- }), void 0 != i[g].dates && null != i[g].dates && "" != i[g].dates && i[g].dates.forEach(function(e) {
- u.push(e);
- }), void 0 != i[g].roles && null != i[g].roles && "" != i[g].roles && i[g].roles.forEach(function(e) {
- d.push(e);
- }), void 0 != i[g].previousroles && null != i[g].previousroles && "" != i[g].previousroles && i[g].previousroles.forEach(function(e) {
- m.push(e);
- }), void 0 != i[g].payments && null != i[g].payments && "" != i[g].payments && i[g].payments.forEach(function(e) {
- l.push(e);
- }), p.push(i[g].name), void 0 != i[g].previousnames && null != i[g].previousnames && "" != i[g].previousnames && i[g].previousnames.forEach(function(e) {
- c.push(e);
- }), void 0 != i[g].phones && null != i[g].phones && "" != i[g].phones && i[g].phones.forEach(function(e) {
- h.push(e);
- }), void 0 != i[g].previousphonenumbers && null != i[g].previousphonenumbers && "" != i[g].previousphonenumbers && i[g].previousphonenumbers.forEach(function(e) {
- f.push(e);
- });
- }
- findUserValues(e, s, r, "A user tried to see the list of every user ", n, t, u, d, m, l, p, c, h, f, function(e, s, r, o) {
- var n = {};
- for (var t in i) {
- a[i[t].username] = {}, a[i[t].username][" "] = {};
- for (var u in userKeys) {
- if ("address" == userKeys[u] || "name" == userKeys[u]) {
- a[i[t].username][userKeys[u]] = getCollection(userKeys[u], o[userKeys[u]], userKeys[u]);
- } else {
- if ("previousaddresses" == userKeys[u]) {
- var d = getCollectionArray(userKeys[u], o[userKeys[u]]);
- a[i[t].username] = d[0], n[userKeys[u]] = d[1];
- } else {
- if ("dates" == userKeys[u]) {
- var m = {};
- if (m[dateTypes[0]] = 1, m[dateTypes[1]] = 1, m[dateTypes[2]] = 1, m[dateTypes[4]] = 1,
- void 0 != i[t].dates && null != i[t].dates && "" != i[t].dates && 1 == permissions.check(r, [ permissions.getFieldPermission("dates", !1)[1] ])) {
- for (var l in date) {
- if (-1 != i[t].dates.indexOf(date[l]._id)) {
- a[i[t].username]["dates_" + date[l].type + "_" + (m[date[l].type] + "")] = {};
- for (var p in datesKeys) {
- "_id" != datesKeys[p] && "__v" != datesKeys[p] && "type" != datesKeys[p] && (a[i[t].username]["dates_" + date[l].type + "_" + (m[date[l].type] + "")][datesKeys[p]] = date[l][datesKeys[p]]);
- }
- m[date[l].type]++;
- }
- }
- n.dates_join < m.join && (n.dates_join = m.join), n.dates_leave < m.leave && (n.dates_leave = m.leave),
- n.dates_renew < m.renew && (n.dates_renew = m.renew), n.dates_refractor < m.refractor && (n.dates_refractor = m.refractor);
- }
- }
- }
- }
- }
- }
- });
- }
- });
- }
- function getCollection(e, s, r) {
- var a = {};
- if ("address" == userKeys[l] && void 0 != user[e] && null != user[e] && "" != user[e] && 1 == permissions.check(userPermissions, [ permissions.getFieldPermission(e, !1)[1] ])) {
- for (var o in s) {
- if (user[e] + "" == s[o]._id + "") {
- for (var i in keys[r]) {
- "_id" != keys[r][i] && "__v" != keys[r][i] && (a[keys[r]] = s[o][keys[r]]);
- }
- break;
- }
- }
- }
- }
- function getCollectionArray(e, s, r, a) {
- var o = 1;
- if (0 == r[e].length && 0 != s.length && 1 == permissions.check(userPermissions, [ permissions.getFieldPermission(e, !1)[1] ])) {
- for (var i in r[e]) {
- for (var n in s) {
- if (r[e][i] + "" == s[n]._id + "") {
- r[e + "_" + (o + "")] = {};
- for (var t in keys[a]) {
- "_id" != keys[a][n] && "__v" != keys[a][n] && (r[e + "_" + (o + "")][keys[a][n]] = s[i][keys[a][n]]);
- }
- o++;
- break;
- }
- }
- }
- }
- return [ r, o ];
- }
- function getCollectionDates() {
- var e = {};
- for (var s in dateTypes) {
- e[dateTypes[s]] = 1;
- }
- }
- function showProfiles(e, s, r, a) {
- var o = {}, i = {};
- users.find({}, function(n, t) {
- if (n) {
- logger.log("error", "There was an error whilst finding a list of users ", {
- Error: n
- }), o.findUsersError = n, e.flash("errorobj", o), s.redirect("/");
- } else {
- if (t) {
- var u = [], d = [], m = [], l = [], p = [], c = [], h = [], f = [], g = [], y = [];
- for (var v in t) {
- u.push(t[v].address), void 0 != t[v].previousaddresses && null != t[v].previousaddresses && "" != t[v].previousaddresses && t[v].previousaddresses.forEach(function(e) {
- d.push(e);
- }), void 0 != t[v].dates && null != t[v].dates && "" != t[v].dates && t[v].dates.forEach(function(e) {
- m.push(e);
- }), void 0 != t[v].roles && null != t[v].roles && "" != t[v].roles && t[v].roles.forEach(function(e) {
- l.push(e);
- }), void 0 != t[v].previousroles && null != t[v].previousroles && "" != t[v].previousroles && t[v].previousroles.forEach(function(e) {
- p.push(e);
- }), void 0 != t[v].payments && null != t[v].payments && "" != t[v].payments && t[v].payments.forEach(function(e) {
- c.push(e);
- }), h.push(t[v].name), void 0 != t[v].previousnames && null != t[v].previousnames && "" != t[v].previousnames && t[v].previousnames.forEach(function(e) {
- f.push(e);
- }), void 0 != t[v].phones && null != t[v].phones && "" != t[v].phones && t[v].phones.forEach(function(e) {
- g.push(e);
- }), void 0 != t[v].previousphonenumbers && null != t[v].previousphonenumbers && "" != t[v].previousphonenumbers && t[v].previousphonenumbers.forEach(function(e) {
- y.push(e);
- });
- }
- findUserValues(e, s, r, o, "A user tried to see the list of every user ", u, d, m, l, p, c, h, f, g, y, function(e, s, r, o, n, u, d, m, l, p, c, h, f, g, y, v, b, w) {
- var _ = Object.keys(addresses.schema.paths), A = Object.keys(dates.schema.paths), k = Object.keys(roles.schema.paths), E = Object.keys(roles_description.schema.paths), U = Object.keys(payments.schema.paths), T = Object.keys(names.schema.paths), P = Object.keys(phones.schema.paths), K = {
- previousaddresses: 0,
- dates_join: 1,
- dates_leave: 0,
- dates_renew: 0,
- dates_refractor: 0,
- roles: 0,
- previousroles: 0,
- payments: 0,
- previousnames: 0,
- emails: 1,
- previousemails: 0,
- phones: 0,
- previousphonenumbers: 0
- };
- for (var S in t) {
- i[t[S].username] = {}, i[t[S].username][" "] = {};
- for (var R in userKeys) {
- if ("address" == userKeys[R]) {
- if (void 0 != t[S].address && null != t[S].address && "" != t[S].address && 1 == permissions.check(r, [ permissions.getFieldPermission("address", !1)[1] ])) {
- for (var j in n) {
- if (t[S].address + "" == n[j]._id + "") {
- i[t[S].username].address = {};
- for (var F in _) {
- "_id" != _[F] && "__v" != _[F] && (i[t[S].username].address[_[F]] = n[j][_[F]]);
- }
- }
- }
- }
- } else {
- if ("previousaddresses" == userKeys[R]) {
- var Y = 1;
- if (void 0 != t[S].previousaddresses && null != t[S].previousaddresses && "" != t[S].previousaddresses && 1 == permissions.check(r, [ permissions.getFieldPermission("previousaddresses", !1)[1] ])) {
- for (var O in u) {
- if (-1 != t[S].previousaddresses.indexOf(u[O]._id)) {
- i[t[S].username]["previousaddresses_" + (Y + "")] = {};
- for (var C in _) {
- "_id" != _[C] && "__v" != _[C] && (i[t[S].username]["previousaddresses_" + (Y + "")][_[C]] = u[O][_[C]]);
- }
- Y++;
- }
- }
- K.previousaddresses < Y && (K.previousaddresses = Y);
- }
- } else {
- if ("dates" == userKeys[R]) {
- var D = {};
- if (D[dateTypes[0]] = 1, D[dateTypes[1]] = 1, D[dateTypes[2]] = 1, D[dateTypes[4]] = 1,
- void 0 != t[S].dates && null != t[S].dates && "" != t[S].dates && 1 == permissions.check(r, [ permissions.getFieldPermission("dates", !1)[1] ])) {
- for (var M in d) {
- if (-1 != t[S].dates.indexOf(d[M]._id)) {
- i[t[S].username]["dates_" + d[M].type + "_" + (D[d[M].type] + "")] = {};
- for (var x in A) {
- "_id" != A[x] && "__v" != A[x] && "type" != A[x] && (i[t[S].username]["dates_" + d[M].type + "_" + (D[d[M].type] + "")][A[x]] = d[M][A[x]]);
- }
- D[d[M].type]++;
- }
- }
- K.dates_join < D.join && (K.dates_join = D.join), K.dates_leave < D.leave && (K.dates_leave = D.leave),
- K.dates_renew < D.renew && (K.dates_renew = D.renew), K.dates_refractor < D.refractor && (K.dates_refractor = D.refractor);
- }
- } else {
- if ("roles" == userKeys[R]) {
- var L = 1;
- if (void 0 != t[S].roles && null != t[S].roles && "" != t[S].roles && 1 == permissions.check(r, [ permissions.getFieldPermission("roles", !1)[1] ])) {
- logger.log("critial", "Can see roles ");
- for (var N in m) {
- if (-1 != t[S].roles.indexOf(m[N]._id)) {
- i[t[S].username]["roles_" + (L + "")] = {};
- for (var G in v) {
- if (v[G]._id + "" == m[N].role + "") {
- for (var q in E) {
- "__v" != E[q] && "use" != E[q] && (i[t[S].username]["roles_" + (L + "")]["Role_" + E[q]] = v[G][E[q]]);
- }
- }
- }
- for (var B in l) {
- if (l[B]._id + "" == m[N].startdate + "") {
- for (var I in A) {
- "_id" != A[I] && "__v" != A[I] && "type" != A[I] && (i[t[S].username]["roles_" + (L + "")]["Start_" + A[I]] = l[B][A[I]]);
- }
- }
- }
- L++;
- }
- }
- K.roles < L && (K.roles = L);
- }
- } else {
- if ("previousroles" == userKeys[R]) {
- var V = 1;
- if (void 0 != t[S].previousroles && null != t[S].previousroles && "" != t[S].previousroles && 1 == permissions.check(r, [ permissions.getFieldPermission("previousroles", !1)[1] ])) {
- logger.log("critial", "Can see previous roles ");
- for (var $ in p) {
- if (-1 != t[S].previousroles.indexOf(p[$]._id)) {
- i[t[S].username]["previousroles_" + (V + "")] = {};
- for (var W in v) {
- if (v[W]._id + "" == p[$].role + "") {
- for (var z in E) {
- "__v" != E[z] && "use" != E[z] && (i[t[S].username]["previousroles_" + (V + "")]["Role_" + E[z]] = v[W][E[z]]);
- }
- }
- }
- for (var H in c) {
- if (c[H]._id + "" == p[$].startdate + "") {
- for (var J in A) {
- "_id" != A[J] && "__v" != A[J] && "type" != A[J] && (i[t[S].username]["previousroles_" + (V + "")]["Start_" + A[J]] = c[H][A[J]]);
- }
- }
- if (c[H]._id + "" == p[$].enddate + "") {
- for (var Q in A) {
- "_id" != A[Q] && "__v" != A[Q] && "type" != A[Q] && (i[t[S].username]["previousroles_" + (V + "")]["End_" + A[Q]] = c[H][A[Q]]);
- }
- }
- }
- V++;
- }
- }
- K.previousroles < V && (K.previousroles = V);
- }
- } else {
- if ("payments" == userKeys[R]) {
- var X = 1;
- if (void 0 != t[S].payments && null != t[S].payments && "" != t[S].payments && 1 == permissions.check(r, [ permissions.getFieldPermission("payments", !1)[1] ])) {
- for (var Z in h) {
- if (-1 != t[S].payments.indexOf(h[Z]._id)) {
- i[t[S].username]["payments_" + (X + "")] = {};
- for (var es in U) {
- "__v" != U[es] && "date" != U[es] && (i[t[S].username]["payments_" + (X + "")][U[es]] = h[Z][U[es]]);
- }
- for (var ss in f) {
- if (f[ss]._id + "" == h[Z].date + "") {
- for (var G in A) {
- "_id" != A[G] && "__v" != A[G] && "type" != A[G] && (i[t[S].username]["payments_" + (X + "")]["date_" + A[G]] = f[ss][A[G]]);
- }
- }
- }
- X++;
- }
- }
- K.payments < X && (K.payments = X);
- }
- } else {
- if ("name" == userKeys[R]) {
- if (void 0 != t[S].name && null != t[S].name && "" != t[S].name && 1 == permissions.check(r, [ permissions.getFieldPermission("name", !1)[1] ])) {
- for (var G in g) {
- if (t[S].name + "" == g[G]._id + "") {
- i[t[S].username].name = {};
- for (var q in T) {
- "_id" != T[q] && "__v" != T[q] && (i[t[S].username].name[T[q]] = g[G][T[q]]);
- }
- }
- }
- }
- } else {
- if ("previousnames" == userKeys[R]) {
- var rs = 1;
- if (void 0 != t[S].previousnames && null != t[S].previousnames && "" != t[S].previousnames && 1 == permissions.check(r, [ permissions.getFieldPermission("previousnames", !1)[1] ])) {
- for (var B in y) {
- if (-1 != t[S].previousnames.indexOf(y[B]._id)) {
- i[t[S].username]["previousnames_" + (rs + "")] = {};
- for (var I in T) {
- "_id" != T[I] && "__v" != T[I] && (i[t[S].username]["previousnames_" + (rs + "")][T[I]] = y[B][T[I]]);
- }
- rs++;
- }
- }
- K.previousnames < rs && (K.previousnames = rs);
- }
- } else {
- if ("phones" == userKeys[R]) {
- var as = 1;
- if (void 0 != t[S].phones && null != t[S].phones && "" != t[S].phones && 1 == permissions.check(r, [ permissions.getFieldPermission("phones", !1)[1] ])) {
- for (var W in b) {
- if (-1 != t[S].phones.indexOf(b[W]._id)) {
- i[t[S].username]["phones_" + (as + "")] = {};
- for (var z in P) {
- "_id" != P[z] && "__v" != P[z] && (i[t[S].username]["phones_" + (as + "")][P[z]] = b[W][P[z]]);
- }
- as++;
- }
- }
- K.phones < as && (K.phones = as);
- }
- } else {
- if ("previousphonenumbers" == userKeys[R]) {
- var os = 1;
- if (void 0 != t[S].previousphonenumbers && null != t[S].previousphonenumbers && "" != t[S].previousphonenumbers && 1 == permissions.check(r, [ permissions.getFieldPermission("previousphonenumbers", !1)[1] ])) {
- for (var H in w) {
- if (-1 != t[S].previousphonenumbers.indexOf(w[H]._id)) {
- i[t[S].username]["previousphonenumbers_" + (os + "")] = {};
- for (var J in P) {
- "_id" != P[J] && "__v" != P[J] && (i[t[S].username]["previousphonenumbers_" + (os + "")][P[J]] = w[H][P[J]]);
- }
- os++;
- }
- }
- K.previousphonenumbers < os && (K.previousphonenumbers = os);
- }
- } else {
- if ("password" == userKeys[R] || "username" == userKeys[R] || "messages" == userKeys[R]) {
- ;
- } else {
- if ("emails" == userKeys[R] || "previousemails" == userKeys[R]) {
- if (void 0 != t[S][userKeys[R]] && null != t[S][userKeys[R]] && "" != t[S][userKeys[R]] && 1 == permissions.check(r, [ permissions.getFieldPermission(userKeys[R], !1)[1] ])) {
- var is = 1;
- i[t[S].username][userKeys[R]] = {}, t[S][userKeys[R]].forEach(function(e) {
- i[t[S].username][userKeys[R]][is + ""] = e, is++;
- }), K[userKeys[R]] < is && (K[userKeys[R]] = is);
- }
- } else {
- void 0 == t[S][userKeys[R]] || null == t[S][userKeys[R]] || "" == t[S][userKeys[R]] && t[S][userKeys[R]] !== !1 && 0 !== t[S][userKeys[R]] || 1 != permissions.check(r, [ permissions.getFieldPermission(userKeys[R], !1)[1] ]) || (i[t[S].username][" "][userKeys[R]] = t[S][userKeys[R]]);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- a(o, i, {
- title: "Users list",
- styles: [ "datatables.net-dt/css/jquery.dataTables.css", "datatables.net-buttons/Buttons-1.2.2/css/buttons.dataTables.css" ],
- scripts: [ "datatables.net/js/jquery.dataTables.js", "datatables.net-buttons/Buttons-1.2.2/js/buttons.print.js", "datatables.net-buttons/Buttons-1.2.2/js/buttons.colVis.js", "datatables.net-buttons/Buttons-1.2.2/js/dataTables.buttons.js", "userList.js" ],
- maxCounts: K,
- keys: {
- user: userKeys,
- address: _,
- date: A,
- role: k,
- roles_description: E,
- name: T,
- payment: U,
- phones: P
- },
- capitalise: capitalise,
- permissions: function(e) {
- return permissions.check(r, [ permissions.getFieldPermission(e, !1)[1] ]);
- }
- });
- });
- } else {
- logger.log("error", "No users could be found when trying to retrieve a list of users "),
- o.findNoUsers = n, e.flash(n), s.redirect("/");
- }
- }
- });
- }
- function suspendProfile(e, s, r) {
- var a = null, o = !1;
- e.isAuthenticated() && e.user ? (a = isOwn(e, e.params.name, e.user.username), o = !0) : (e.flash("error", "You must be logged in to suspend an account "),
- s.redirect("/")), o === !0 && (permissions.check(r, permissionsList.permissions.delete_own) && a || permissions.check(r, permissionsList.permissions.delete_any)) && users.findOne({
- username: e.params.name
- }, function(o, i) {
- if (o) {
- e.flash("error", "There was an error when finding your user account "), logger.log("error", SUSACCERR, {
- Error: o,
- User: e.user.username,
- AffectedUser: e.params.name
- }), s.status(500), s.redirect("/");
- } else {
- var n = makeDate(new Date(), dateTypes[1]);
- dates.findOne(n, function(o, t) {
- if (o) {
- e.flash("error", "There was an error when obtaining the date of your account suspension "),
- logger.log("error", SUSACCERR, {
- Error: o,
- user: e.user.username,
- AffectedUser: e.params.name
- }), s.status(500), s.redirect("/");
- } else {
- if (t) {
- suspendUser(e, s, r, a, i, t);
- } else {
- var u = new dates(n);
- u.save(function(o, n) {
- o ? (e.flash("error", "There was an error when trying to save a new account suspension date "),
- logger.log("error", SUSACCERR, {
- Error: o,
- user: e.user.username,
- AffectedUser: e.params.name
- }), s.status(500), s.redirect("/")) : suspendUser(e, s, r, a, i, n);
- });
- }
- }
- });
- }
- });
- }
- function suspendUser(e, s, r, a, o, i) {
- var n = o.dates;
- n.push(i._id), users.update({
- username: e.params.name
- }, {
- membershipapproved: 6,
- dates: n
- }, function(r, o, i) {
- logger.log("transaction", "Account suspension update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", SUSACCERR), e.flash("error", "There was an error when updating your user profile "),
- s.status(500), s.redirect("/")) : a === !0 ? (e.flash("success", "Your account was successfully suspended "),
- s.redirect("/logout")) : (e.flash("success", "The account was successfully suspended "),
- s.redirect("/"));
- });
- }
- function changePassword(e, s, r) {
- if (e.isAuthenticated() && e.user) {
- var a = isOwn(e, e.params.name, e.user.username);
- 1 == permissions.check(r, [ permissions.getFieldPermission("password", a)[0] ]) ? s.render(path.resolve("./views/password.pug"), {
- title: "Change Password for " + e.params.name,
- styles: [],
- scripts: []
- }) : (e.flash("error", "You do not have permission to change this user's password "),
- s.redirect("/"));
- } else {
- e.flash("error", "You must be logged in to change a password "), s.redirect("/");
- }
- }
- function changeEmail(e, s, r) {
- if (e.isAuthenticated() && e.user) {
- var a = isOwn(e, e.params.name, e.user.username);
- 1 == permissions.check(r, [ permissions.getFieldPermission("emails", a)[0] ]) ? addDataPage(e, s, "email", [], []) : (e.flash("error", "You do not have permission to change this user's email "),
- s.redirect("/profile/" + e.params.name));
- } else {
- e.flash("error", "You must be logged in to add an email address "), s.redirect("/profile/" + e.params.name);
- }
- }
- function changePhone(e, s, r) {
- if (e.isAuthenticated() && e.user) {
- var a = isOwn(e, e.params.name, e.user.username);
- 1 == permissions.check(r, [ permissions.getFieldPermission("phones", a)[0] ]) ? addDataPage(e, s, "phone", [], []) : (e.flash("error", "You do not have permission to change this user's phone number "),
- s.redirect("/profile/" + e.params.name));
- } else {
- e.flash("error", "You must be logged in to add a phone number "), s.redirect("/profile/" + e.params.name);
- }
- }
- function addDataPage(e, s, r, a, o) {
- s.render(path.resolve("./views/addData.pug"), {
- title: "Add " + r + " for " + e.params.name,
- styles: a,
- scripts: o,
- datum: r
- });
- }
- function editPassword(e, s, r) {
- logger.log("user", "A user is changing a pasword "), e.user && e.isAuthenticated() ? e.user.username == e.params.name || permissions.check(r, [ permissionsList.permissions.edit_any_password ]) ? users.findOne({
- username: e.user.username
- }, function(r, a) {
- r ? (logger.log("error", "There was an error when a user tried to update a password ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("errorobj", r), s.redirect("/")) : a && e.body ? e.body.newPassword && e.body.confirmPassword ? e.body.newPassword.length < 10 || e.body.newPassword.length > 100 ? (e.flash("error", "Your password must be between 10 and 100 characters long "),
- s.redirect("/profile/" + e.params.name + "/edit" + e.params.data)) : bcrypt.compare(e.body.currentPassword, a.password, function(r, o) {
- r ? (logger.log("error", "There was an error matching a user's password during a password change ", {
- Error: r,
- User: e.user.username
- }), console.log(r), e.flash("error", "There was an error checking your password"),
- s.redirect("/profile/" + e.params.name + "/edit/" + e.params.data)) : o !== !0 ? (e.flash("error", "Your current password did not match "),
- s.redirect("/profile/" + e.params.name + "/edit/" + e.params.data)) : e.body.newPassword !== e.body.confirmPassword ? (e.flash("error", "Your new password did not match the value in the confirm password box "),
- s.redirect("/profile/" + e.params.name + "/edit/" + e.params.data)) : makePassword(e, s, e.body.newPassword, function(r) {
- e.user.username == e.params.name ? users.update({
- _id: a._id
- }, {
- password: r
- }, function(r, a, o) {
- logger.log("transaction", "Password update status", {
- Error: r,
- Count: a,
- Status: o
- }), r ? (e.flash("errorobj", r), s.redirect("/")) : (e.flash("success", "Your password was changes sucessfully "),
- s.redirect("/profile/" + e.params.name));
- }) : users.findOne({
- username: e.params.name
- }, function(o, i) {
- o ? (logger.log("error", "There was an error when a user tried to update a password ", {
- Error: o,
- User: e.user.username
- }), e.flash("errorobj", o), s.redirect("/")) : a ? users.update({
- _id: i._id
- }, {
- password: r
- }, function(r, o, i) {
- logger.log("transaction", "Password update status", {
- User: a.username,
- Error: r,
- Count: o,
- Status: i
- }), r ? (e.flash("errorobj", r), s.redirect("/")) : (e.flash("success", "The password was changed sucessfully "),
- s.redirect("/profile/" + e.params.name));
- }) : (logger.log("error", "A user trying to change a password does not seem to exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There is no user with the specified username "), s.redirect("/profile"));
- });
- });
- }) : (e.flash("error", "You did not send the password to change the password to "),
- s.redirect("/profile/" + e.params.name + "/edit" + e.params.data)) : (logger.log("error", "A user trying to change a password does not seem to exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There is no user with your username "), s.redirect("/logout"));
- }) : (e.flash("error", "You do not have permission to change this user's password "),
- s.redirect("/")) : (e.flash("error", "You must be logged in to change a password "),
- s.redirect("/"));
- }
- function deleteEmail(e, s, r) {
- var a = null;
- e.isAuthenticated() && e.user ? a = isOwn(e, e.params.name, e.user.username) : (e.flash("error", "You must be logged in to delete an email "),
- s.redirect("/")), 1 == permissions.check(r, [ permissions.getFieldPermission("emails", a)[0] ]) ? users.findOne({
- username: e.params.name
- }, function(r, a) {
- if (r) {
- logger.log("error", "There was an error when a user tried to delete an email ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("errorobj", r), s.redirect("/");
- } else {
- if (a) {
- if (a.emails.length > 1) {
- var o = [], i = [];
- a.emails.forEach(function(s) {
- s != e.body.id ? o.push(s) : i.push(s);
- }), a.previousemails.forEach(function(e) {
- i.push(e);
- }), users.update({
- _id: a._id
- }, {
- emails: o,
- previousemails: i
- }, function(r, o, i) {
- logger.log("transaction", "Email deletion status", {
- User: a.username,
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error during a user email deletion "),
- e.flash("errorobj", r), s.redirect("/")) : (e.flash("success", "The email was deleted successfully"),
- s.redirect("/profile/" + e.params.name));
- });
- } else {
- e.flash("error", "You must have at least one email address registered "), s.redirect("/profile/" + e.params.name);
- }
- } else {
- logger.log("error", "A user is trying to change an email for a user that does not exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There is no user with the specified username "), s.redirect("/");
- }
- }
- }) : (e.flash("error", "You do not have permission to change this email address "),
- s.redirect("/"));
- }
- function addEmail(e, s, r) {
- var a = null;
- e.isAuthenticated() && e.user ? a = isOwn(e, e.params.name, e.user.username) : (e.flash("error", "You must be logged in to add an email "),
- s.redirect("/")), 1 == permissions.check(r, [ permissions.getFieldPermission("emails", a)[0] ]) ? e.body ? users.findOne({
- username: e.params.name
- }, function(r, a) {
- if (r) {
- logger.log("error", "There was an error when a user tried to add an email ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("errorobj", r), s.status(500), s.redirect("/");
- } else {
- if (a) {
- if (null == e.body.newemail || void 0 == e.body.newemail || "" == e.body.newemail || -1 == e.body.newemail.indexOf("@")) {
- e.flash("error", "The email you sent was invalid "), s.redirect("/profile/" + e.params.name);
- } else {
- var o = a.emails;
- o.push(e.body.newemail), users.update({
- _id: a._id
- }, {
- emails: o
- }, function(r, a, o) {
- logger.log("transaction", "Email update status: ", {
- Error: r,
- Count: a,
- Status: o
- }), r ? (logger.log("error", "There was an error when updating a user's emails "),
- e.flash("errorobj", r), s.status(500), s.redirect("/profile/" + e.params.name + "?editable=true")) : (e.flash("success", "Your email address was added successfully "),
- s.redirect("/profile/" + e.params.name));
- });
- }
- } else {
- logger.log("error", "A user is trying to change an email for a user that does not exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There is no user with the specified username "), s.redirect("/");
- }
- }
- }) : (e.flash("error", "You did not send any data to the server "), s.redirect("/profile/" + e.params.name)) : (e.flash("error", "You do not have permission to add this email address "),
- s.redirect("/"));
- }
- function deletePhone(e, s, r) {
- var a = null;
- e.isAuthenticated() && e.user ? a = isOwn(e, e.params.name, e.user.username) : (e.flash("error", "You must be logged in to delete a phone number "),
- s.redirect("/")), 1 == permissions.check(r, [ permissions.getFieldPermission("phones", a)[0] ]) ? users.findOne({
- username: e.params.name
- }, function(r, a) {
- r ? (e.flash("errorobj", r), logger.log("error", "There was an error finding the user when a user tried to delete a phone number ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.params.name
- }), s.status(500), s.redirect("/")) : a ? phones.findOne({
- number: e.body.number,
- type: e.body.type
- }, function(r, o) {
- if (r) {
- e.flash("errorobj", r), logger.log("error", "There was an error finding phone numbers when a user tried to delete a phone number ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.params.name
- }), s.status(500), s.redirect("/");
- } else {
- if (o) {
- if (1 == a.phones.length) {
- e.flash("error", "You must have at least one phone number registered "), s.redirect("/profile/" + e.params.name);
- } else {
- var i = [], n = [];
- a.phones.forEach(function(e) {
- e + "" == o._id + "" ? n.push(e) : i.push(e);
- }), a.previousphonenumbers.forEach(function(e) {
- n.push(e);
- }), users.update({
- _id: a._id
- }, {
- phones: i,
- previousphonenumbers: n
- }, function(r, a, o) {
- logger.log("transaction", "User phone number deletion status: ", {
- Error: r,
- Count: a,
- Status: o
- }), r ? (logger.log("error", "There was an error when a user tried to delete a phone number ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("errorobj", r), s.status(500), s.redirect("/")) : (e.flash("success", "The phone number was successfully removed "),
- s.redirect("/profile/" + e.params.name));
- });
- }
- } else {
- logger.log("error", "A user is trying to delete a phone number that does not exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "The phone number you are trying to delete does not exist "),
- s.redirect("/");
- }
- }
- }) : (logger.log("error", "A user is trying to change a phone number for a user that does not exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There is no user with the specified username "), s.redirect("/"));
- }) : (e.flash("error", "You do not have permission to change this phone number "),
- s.redirect("/"));
- }
- function addPhone(e, s, r) {
- var a = null;
- e.isAuthenticated() && e.user ? a = isOwn(e, e.params.name, e.user.username) : (e.flash("error", "You must be logged in to add a phone number "),
- s.redirect("/")), 1 == permissions.check(r, [ permissions.getFieldPermission("phones", a)[0] ]) ? users.findOne({
- username: e.params.name
- }, function(a, o) {
- a ? (logger.log("error", "There was an error when a user tried to add a phone number ", {
- Error: a,
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("errorobj", a), s.status(500), s.redirect("/")) : o ? null == e.body.newphone || void 0 == e.body.newphone || "" == e.body.newphone || null == e.body.type || void 0 == e.body.type || "" == e.body.type ? (e.flash("error", "The phone number you sent was invalid "),
- s.redirect("/profile/" + e.params.name)) : phones.findOne({
- number: e.body.newphone,
- type: e.body.type
- }, function(a, i) {
- if (a) {
- e.flash("errorobj", a), logger.log("error", "There was an error finding phone numbers when a user tried to add a new phone number ", {
- Error: a,
- User: e.user.username,
- AffectedUser: e.params.name
- }), s.status(500), s.redirect("/");
- } else {
- if (i) {
- saveNewPhoneNumber(e, s, r, o, i);
- } else {
- var n = new phones({
- number: e.body.newphone,
- type: e.body.type
- });
- n.save(function(a, i) {
- a ? (e.flash("errorobj", a), logger.log("error", "There was an error saving a new phone number when a user tried to add a phone number ", {
- Error: a,
- User: e.user.username,
- AffectedUser: e.params.user
- }), s.status(500), s.redirect("/")) : saveNewPhoneNumber(e, s, r, o, i);
- });
- }
- }
- }) : (logger.log("error", "A user is trying to change a phone number for a user that does not exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There is no user with the specified username "), s.redirect("/"));
- }) : (e.flash("error", "You do not have permission to add this phone number "),
- s.redirect("/"));
- }
- function saveNewPhoneNumber(e, s, r, a, o) {
- var i = a.phones;
- i.push(o._id), users.update({
- _id: a._id
- }, {
- phones: i
- }, function(r, a, o) {
- logger.log("transaction", "User phone number change status: ", {
- Error: r,
- Count: a,
- Status: o
- }), r ? (e.flash("errorobj", r), logger.log("error", "There was an error when a user tried to change a phone number "),
- s.status(500), s.redirect("/")) : (e.flash("success", "Your phone number was added successfully "),
- s.redirect("/profile/" + e.params.name));
- });
- }
- function changeData(e, s, r) {
- var a = null, o = {};
- e.isAuthenticated() && e.user ? a = isOwn(e, e.params.name, e.user.username) : (e.flash("error", "You must be logged in to change user data "),
- s.redirect("/")), null == a ? (e.flash("error", "You must be logged in to change user data "),
- s.redirect("/")) : users.findOne({
- username: e.params.name
- }, function(i, n) {
- i ? (logger.log("error", "There was an error when a user tried to delete an email ", {
- Error: i,
- User: e.user.username,
- AffectedUser: e.params.name
- }), o.findUserError = i, e.flash("errorobj", o), s.redirect("/")) : n ? e.body ? findUserValues(e, s, r, o, "A user tried to edit a user's data ", [ n.address ], n.previousaddresses, n.dates, n.roles, n.previousroles, n.payments, [ n.name ], n.previousnames, n.phones, n.previousphonenumbers, function(e, s, r, o, i, t, u, d, m, l, p, c, h, f, g, y) {
- null == e.body.namefirstname || void 0 == e.body.namefirstname || "" == e.body.namefirstname || null == e.body.namesurname || void 0 == e.body.namesurname || "" == e.body.namesurname ? (o.changeNameUndefinedFields = "Some name fields that are required (firstname and surname) were not filled in ",
- changeData2(e, s, n, r, a, o, i, t, u, d, m, l, p, c, h, f, g, y)) : e.body.nametitle != f[0].title || e.body.namefirstname != f[0].firstname || e.body.namemiddlenames != f[0].middlenames || e.body.namesurname != f[0].surname ? 1 == permissions.check(r, [ permissions.getFieldPermission("name", a)[0] ]) ? names.findOne({
- title: e.body.nametitle,
- firstname: e.body.namefirstname,
- middlenames: e.body.namemiddlenames,
- surname: e.body.namesurname
- }, function(f, v) {
- if (f) {
- logger.log("error", "There was an error when trying to find a name when a user tried to update its data "),
- error.findNameError = f, e.flash("errorobj", f), s.status(500), s.redirect("/");
- } else {
- if (v) {
- var b = null;
- b = null == n.previousnames || void 0 == n.previousnames ? [] : n.previousnames,
- b.push(n.name), users.update({
- _id: n._id
- }, {
- previousnames: b,
- name: v._id
- }, function(f, b, w) {
- logger.log("transaction", "Names update status: ", {
- Error: f,
- Count: b,
- Status: w
- }), f ? (logger.log("error", "There was an error when updating a user's name "),
- o.updateNameError = f, e.flash("errorobj", f), s.status(500), s.redirect("/")) : changeData2(e, s, n, r, a, o, i, t, u, d, m, l, p, c, h, v, g, y);
- });
- } else {
- var w = new names({
- title: e.body.nametitle,
- firstname: e.body.namefirstname,
- middlenames: e.body.namemiddlenames,
- surname: e.body.namesurname
- });
- w.save(function(f, v) {
- if (f) {
- logger.log("error", "There was an error when saving a new name whan a user tried to update a user's name "),
- o.saveNameError = f, e.flash("errorobj", o), s.status(500), s.redirect("/");
- } else {
- var b = null;
- b = null == n.previousnames || void 0 == n.previousnames ? [] : n.previousnames,
- b.push(n.name), users.update({
- _id: n._id
- }, {
- previousnames: b,
- name: v._id
- }, function(f, b, w) {
- logger.log("transaction", "Names update status: ", {
- Error: f,
- Count: b,
- Status: w
- }), f ? (logger.log("error", "There was an error when updating a user's name "),
- o.updateNameError = f, e.flash("errorobj", f), s.status(500), s.redirect("/")) : changeData2(e, s, n, r, a, o, i, t, u, d, m, l, p, c, h, v, g, y);
- });
- }
- });
- }
- }
- }) : (o.changeNameNoPermissions = "You do not have permission to change this user's name ",
- changeData2(e, s, n, r, a, o, i, t, u, d, m, l, p, c, h, f, g, y)) : changeData2(e, s, n, r, a, o, i, t, u, d, m, l, p, c, h, f, g, y);
- }) : (logger.log("error", "A user is trying to change data for a user but sent no form data ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "No form data was sent "), s.redirect("/")) : (logger.log("error", "A user is trying to change data for a user that does not exist ", {
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There is no user with the specified username "), s.redirect("/"));
- });
- }
- function changeData2(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y) {
- null == e.body.addressline1 || void 0 == e.body.addressline1 || "" == e.body.addressline1 || null == e.body.addresstown || void 0 == e.body.addresstown || "" == e.body.addresstown || null == e.body.addresscounty || void 0 == e.body.addresscounty || "" == e.body.addresscounty || null == e.body.addresscountry || void 0 == e.body.addresscountry || "" == e.body.addresscountry || null == e.body.addresspostcode || void 0 == e.body.addresspostcode || "" == e.body.addresspostcode ? (i.changeAddressUndefinedFields = "Some adddress fields that are required were not filled in ",
- changeData3(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y)) : e.body.addressline1 != n[0].line1 || e.body.addressline2 != n[0].line2 || e.body.addressline3 != n[0].line3 || e.body.addressotherlines != n[0].otherlines || e.body.addresstown != n[0].town || e.body.addresscounty != n[0].county || e.body.addresscountry != n[0].country || e.body.addresspostcode != n[0].postcode ? 1 == permissions.check(a, [ permissions.getFieldPermission("address", o)[0] ]) ? addresses.findOne({
- line1: e.body.addressline1,
- line2: e.body.addressline2,
- line3: e.body.addressline3,
- otherlines: e.body.addressotherlines,
- town: e.body.addresstown,
- county: e.body.addresscounty,
- country: e.body.addresscountry,
- postcode: e.body.addresspostcode
- }, function(n, v) {
- if (n) {
- logger.log("error", "There was an error when trying to find an address when a user tried to update its data "),
- error.findAddressError = n, e.flash("errorobj", n), s.status(500), s.redirect("/");
- } else {
- if (v) {
- var b = null;
- b = null == r.previousaddresses || void 0 == r.previousaddresses ? [] : r.previousaddresses,
- b.push(r.address), users.update({
- _id: r._id
- }, {
- previousaddresses: b,
- address: v._id
- }, function(n, b, w) {
- logger.log("transaction", "Addresses update status: ", {
- Error: n,
- Count: b,
- Status: w
- }), n ? (logger.log("error", "There was an error when updating a user's address "),
- i.updateAddressError = n, e.flash("errorobj", n), s.status(500), s.redirect("/")) : changeData3(e, s, r, a, o, i, v, t, u, d, m, l, p, c, h, f, g, y);
- });
- } else {
- var w = new addresses({
- line1: e.body.addressline1,
- line2: e.body.addressline2,
- line3: e.body.addressline3,
- otherlines: e.body.addressotherlines,
- town: e.body.addresstown,
- county: e.body.addresscounty,
- country: e.body.addresscountry,
- postcode: e.body.addresspostcode
- });
- w.save(function(n, v) {
- if (n) {
- logger.log("error", "There was an error when saving a new address whan a user tried to update a user's address "),
- i.saveAddressError = n, e.flash("errorobj", i), s.status(500), s.redirect("/");
- } else {
- var b = null;
- b = null == r.previousaddresses || void 0 == r.previousaddresses ? [] : r.previousaddresses,
- b.push(r.address), users.update({
- _id: r._id
- }, {
- previousaddresses: b,
- address: v._id
- }, function(n, b, w) {
- logger.log("transaction", "Addresses update status: ", {
- Error: n,
- Count: b,
- Status: w
- }), n ? (logger.log("error", "There was an error when updating a user's address "),
- i.updateAddressError = n, e.flash("errorobj", n), s.status(500), s.redirect("/")) : changeData3(e, s, r, a, o, i, v, t, u, d, m, l, p, c, h, f, g, y);
- });
- }
- });
- }
- }
- }) : (i.changeNameNoPermissions = "You do not have permission to change this user's name ",
- changeData3(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y)) : changeData3(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- }
- function changeData3(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y) {
- if (e.body.BAA + "" != r.BAA + "") {
- if (1 == permissions.check(a, [ permissions.getFieldPermission("BAA", o)[0] ])) {
- var v = null;
- e.body.BAA + "" == "true" ? v = !0 : e.body.BAA + "" == "false" ? v = !1 : (i.BAAStatusInvalidValue = "You must either be a member of the British Astronomical Assocsiation or you must not; the value given was neither ",
- changeData4(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y)), null !== v && users.update({
- _id: r._id
- }, {
- BAA: v
- }, function(v, b, w) {
- logger.log("transaction", "BAA update status: ", {
- Error: v,
- Count: b,
- Status: w
- }), v ? (logger.log("error", "There was an error when updating a user's BAA status "),
- i.updateBAAStatusError = v, e.flash("errorobj", v), s.status(500), s.redirect("/")) : changeData4(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- });
- } else {
- i.changeBAANoPermissions = "You do not have permission to change this user's BAA status ",
- changeData4(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- }
- } else {
- changeData4(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- }
- }
- function changeData4(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y) {
- if (e.body.FRAS + "" != r.FRAS + "") {
- if (1 == permissions.check(a, [ permissions.getFieldPermission("FRAS", o)[0] ])) {
- var v = null;
- e.body.FRAS + "" == "true" ? v = !0 : e.body.FRAS + "" == "false" ? v = !1 : (i.FRASStatusInvalidValue = "You must either be a fellow of the Royal Astronomical Society or you must not; the value given was neither ",
- changeData5(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y)), null !== v && users.update({
- _id: r._id
- }, {
- FRAS: v
- }, function(v, b, w) {
- logger.log("transaction", "FRAS update status: ", {
- Error: v,
- Count: b,
- Status: w
- }), v ? (logger.log("error", "There was an error when updating a user's FRAS status "),
- i.updateFRASStatusError = v, e.flash("errorobj", v), s.status(500), s.redirect("/")) : changeData5(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- });
- } else {
- i.changeFRASNoPermissions = "You do not have permission to change this user's FRAS status ",
- changeData5(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- }
- } else {
- changeData5(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- }
- }
- function changeData5(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y) {
- if (null == e.body.refractortest || void 0 == e.body.refractortest || "" == e.body.refractortest) {
- changeData6(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- } else {
- if (e.body.refractortest + "" != r.refractortest + "") {
- if (1 == permissions.check(a, [ permissions.getFieldPermission("refractortest", o)[0] ])) {
- var v = null;
- if (e.body.refractortest + "" == "true" ? v = !0 : e.body.refractortest + "" == "false" ? v = !1 : (i.refractorTestInvalidValue = "you must either have passed the refractor test or have failed it; the value given was neither ",
- changeData6(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y)), null !== v) {
- if (v === !1) {
- users.update({
- _id: r._id
- }, {
- refractortest: v
- }, function(v, b, w) {
- logger.log("transaction", "Refractor test update status: ", {
- Error: v,
- Count: b,
- Status: w
- }), v ? (logger.log("error", "There was an error when updating a user's refractor test status "),
- i.updateRefractorTestStatusError = v, e.flash("errorobj", v), s.status(500), s.redirect("/")) : changeData6(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- });
- } else {
- var b = makeDate(new Date(), dateTypes[4]);
- dates.findOne(b, function(w, _) {
- if (w) {
- logger.log("error", "There was an error when finding a refractor test pass date ", {
- Error: w,
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There was an error validating the refractor test pass date "),
- s.status(500), s.redirect("/");
- } else {
- if (_) {
- var A = r.dates;
- A.push(_._id), users.update({
- _id: r._id
- }, {
- refractortest: v,
- dates: A
- }, function(v, b, w) {
- logger.log("transaction", "Refractor test update status: ", {
- Error: v,
- Count: b,
- Status: w
- }), v ? (logger.log("error", "There was an error when updating a user's refractor test status "),
- i.updateRefractorTestStatusError = v, e.flash("errorobj", v), s.status(500), s.redirect("/")) : changeData6(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- });
- } else {
- var k = new dates(b);
- k.save(function(b, w) {
- if (b) {
- logger.log("error", "there was an error when saving a new refractor test pass date ", {
- Error: b,
- User: e.user.username,
- AffectedUser: e.params.name
- }), e.flash("error", "There was an error saving the new refractor test pass date "),
- s.status(500), s.redirect("/");
- } else {
- var _ = r.dates;
- _.push(w._id), users.update({
- _id: r._id
- }, {
- refractortest: v,
- dates: _
- }, function(v, b, w) {
- logger.log("transaction", "Refractor test update status: ", {
- Error: v,
- Count: b,
- Status: w
- }), v ? (logger.log("error", "There was an error when updating a user's refractor test status "),
- i.updateRefractorTestStatusError = v, e.flash("errorobj", v), s.status(500), s.redirect("/")) : changeData6(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- });
- }
- });
- }
- }
- });
- }
- }
- } else {
- i.refractorTestNoPermissions = "You do not have permission to change this user's refractor test pass status ",
- changeData6(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- }
- } else {
- changeData6(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y);
- }
- }
- }
- function changeData6(e, s, r, a, o, i) {
- logger.log("debug", Object.keys(e.body) + ""), e.flash("errorobj", i), 0 != Object.keys(i).length ? e.flash("info", "Your profile was updated but some fields could not be updated ") : e.flash("success", "Your profile was updated successfully "),
- s.redirect("/profile/" + e.params.name);
- }
- function membershipDetails(e, s, r) {
- var a = isOwn(e, e.user.username, e.params.name);
- membershipPermissions = 0, a === !0 ? (membershipPermissions += 6, permissions.check(r, [ permissionsList.permissions.delete_own ]) && (membershipPermissions += 1)) : (1 == permissions.check(r, [ permissionsList.permissions.delete_any ]) && (membershipPermissions += 1),
- 1 == permissions.check(r, [ permissionsList.permissions.membership ]) && (membershipPermissions += 2),
- 1 == permissions.check(r, [ permissionsList.permissions.edit_username ]) && (membershipPermissions += 4)),
- membershipPermissions > 0 ? users.findOne({
- username: e.params.name
- }, function(r, a) {
- r ? (e.flash("errorobj", r), logger.log("error", "An error was encountered when a user tried to view user membership information ", {
- Error: r,
- User: e.user.username,
- Viewed: e.params.name
- }), s.redirect("/")) : a ? (e.flash("info", "This page shows private membership status information "),
- s.render(path.resolve("./views/membership"), {
- title: e.params.name + " Membership",
- styles: [],
- scripts: [ "makeURL.js", "membership.js" ],
- username: e.params.name,
- membershipStatus: a.membershipapproved + "",
- renew: renewAccounts + "",
- statusMeanings: STATUSNUMBERMEANINGS,
- permissions: membershipPermissions
- })) : (e.flash("error", "There is no user with the username you specified "), s.redirect("/"));
- }) : (e.flash("error", "You do not have permission to view this page "), s.redirect("/"));
- }
- function adminChangeMembership(e, s, r) {
- var a = "There was an error saving the changed membership status ";
- e.body ? e.body.username ? users.findOne({
- username: e.body.username
- }, function(o, i) {
- if (o) {
- logger.log("error", FINDUSERERR, {
- Error: o,
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", "There was an error retrieving the required user acount "),
- s.redirect("/");
- } else {
- if (i) {
- if ("exempt" == e.params.data) {
- if (1 == permissions.check(r, [ permissionsList.permissions.membership ]) && e.user) {
- var n = -1;
- 6 == i.membershipapproved ? (e.flash("error", "You cannot make a suspended account exempt "),
- s.redirect("/admin/membership")) : n = 7 == i.membershipapproved ? 4 : 7, logger.log("debug", "Membership status: " + (n + "")),
- n > -1 && users.update({
- username: e.body.username
- }, {
- membershipapproved: n
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when a user tried to update a user's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- s.redirect("/admin/membership"));
- });
- } else {
- e.flash("error", "You do not have permission to make a user exempt "), s.redirect("/admin/membership");
- }
- } else {
- if ("pay" == e.params.data) {
- if (1 == permissions.check(r, [ permissionsList.permissions.membership ]) && e.user) {
- var n = -1;
- 6 == i.membershipapproved || 8 == i.membershipapproved ? (e.flash("error", "You cannot change the payment status for a suspended account "),
- s.redirect("/admin/membership")) : 7 == i.membershipapproved ? (e.flash("error", "You cannot change the payment status for an exempt account "),
- s.redirect("/admin/membership")) : 0 == i.membershipapproved || 3 == i.membershipapproved ? (e.flash("error", "This user has not requested to renew its membership "),
- s.redirect("/admin/membership")) : 1 == i.membershipapproved || 4 == i.membershipapproved ? n = 1 == renewAccounts ? 5 : 2 : (2 == i.membershipapproved || 5 == i.membershipapproved) && (n = i.membershipapproved - 1),
- n > -1 && users.update({
- username: e.body.username
- }, {
- membershipapproved: n
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when updating a user acount's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- s.redirect("/admin/membership"));
- });
- } else {
- e.flash("error", "You do not have permission to change a user's payment status "),
- s.redirect("/");
- }
- } else {
- if ("unsuspend" == e.params.data) {
- if (1 == permissions.check(r, [ permissionsList.permissions.membership, permissionsList.permissions.delete_any ]) && e.user) {
- if (6 != i.membershipapproved) {
- e.flash("error", "The account you are trying to re-enable is not suspended "), s.redirect("/admin/membership");
- } else {
- var t = makeDate(new Date(), dateTypes[0]);
- dates.findOne(t, function(r, o) {
- if (r) {
- logger.log("error", "There was an error when finding the date when the user acount became unsuspended ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", "There was an error getting the date of the end of the account's suspension "),
- s.ststus(500), s.redirect("/");
- } else {
- if (o) {
- var n = i.dates;
- n.push(o._id), users.update({
- username: e.body.username
- }, {
- membershipapproved: 4,
- dates: n
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when updating a user acount's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- s.redirect("/admin/membership"));
- });
- } else {
- var u = new dates(t);
- u.save(function(r, o) {
- if (r) {
- logger.log("error", "There was an error saving a new user rejoin date ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", "There was an error validating the account unsuspension date "),
- s.ststus(500), s.redirect("/");
- } else {
- var n = i.dates;
- n.push(o._id), users.update({
- username: e.body.username
- }, {
- membershipapproved: 4,
- dates: n
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when updating a user acount's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- s.redirect("/admin/membership"));
- });
- }
- });
- }
- }
- });
- }
- } else {
- e.flash("error", "You do not have permission to unsuspend an account "), s.redirect("/");
- }
- } else {
- if ("disable" == e.params.data) {
- if (permissions.check(r, permissionsList.permissions.permenantly_suspend)) {
- if (8 != i.membershipapproved) {
- if (6 === i.membershipapproved) {
- users.update({
- username: e.body.username
- }, {
- membershipapproved: 8
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when updating a user acount's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- s.redirect(e.user.username == e.body.username ? "/logout" : "/admin/membership"));
- });
- } else {
- var u = makeDate(new Date(), dateTypes[1]);
- dates.findOne(u, function(r, o) {
- if (r) {
- logger.log("error", "There was an error when finding the date when the user acount became disabled ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", "There was an error getting the date when the account was disabled "),
- s.ststus(500), s.redirect("/");
- } else {
- if (o) {
- var n = i.dates;
- n.push(o._id), console.log("Found "), console.log(n), users.update({
- username: e.body.username
- }, {
- membershipapproved: 8,
- dates: n
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when updating a user acount's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- s.redirect(e.user.username == e.body.username ? "/logout" : "/admin/membership"));
- });
- } else {
- var t = new dates(u);
- t.save(function(r, o) {
- if (r) {
- logger.log("error", "There was an error saving a new user account disabled date ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", "There was an error validating the account disabled date "),
- s.ststus(500), s.redirect("/");
- } else {
- var n = i.dates;
- n.push(o._id), console.log("SAVED "), console.log(n), users.update({
- username: e.body.username
- }, {
- membershipapproved: 8,
- dates: n
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when updating a user acount's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- s.redirect(e.user.username == e.body.username ? "/logout" : "/admin/membership"));
- });
- }
- });
- }
- }
- });
- }
- } else {
- users.update({
- username: e.body.username
- }, {
- membershipapproved: 6
- }, function(r, o, i) {
- logger.log("transaction", "User account membership status update status: ", {
- Error: r,
- Count: o,
- Status: i
- }), r ? (logger.log("error", "There was an error when updating a user acount's membership status ", {
- User: e.user.username,
- AffectedUser: e.body.username
- }), e.flash("error", a), s.status(500), s.redirect("/")) : (e.flash("success", "User membership status updated successfully "),
- e.flash("info", "to re-enable the accountf ully, click the button to unsuspend it "),
- s.redirect("/admin/membership"));
- });
- }
- } else {
- e.flash("You do not have permission to disable an account "), s.redirect("/");
- }
- } else {
- e.flash("error", "The datum you specified to edit was not a valid sort "), s.redirect("/admin/membership");
- }
- }
- }
- }
- } else {
- e.flash("error", "There is no user with the username you specified "), s.redirect("/admin/membership");
- }
- }
- }) : (e.flash("error", "You did not send the username of the user to edit "), s.redirect("/admin/membership")) : (e.flash("error", "You did not send any data "),
- s.redirect("/admin/membership"));
- }
- const ERRMSG = "There was an error when finding ", SUSACCERR = "There was an error when a user tried to suspend an account ", FINDUSERERR = "There was an error when trying to retrieve a user account ", STATUSNUMBERMEANINGS = {
- "0": "You have not requested to join properly ",
- "1": "Your membership is awaiting payment ",
- "2": "You are a fully payed member ",
- "3": "You have not renewed your membership ",
- "4": "You have not payed to renew your membership ",
- "5": "You have renewed your membership ",
- "6": "You are not a member ",
- "7": "You never need to pay ",
- "8": "You account was permenantly suspended "
- };
- var users = null, dates = null, addresses = null, payments = null, roles = null, roles_description = null, names = null, phones = null, path = null, userKeys = null, permissions = null, permissionsList = null, dateTypes = null, logger = null, bcrypt = null, makePassword = null, makeDate = null, usernameBlacklist = null, charactersBlacklist = null, renewAccounts = null, user_messages = null, capitalise = null, async = null, keys = {};
- exports.init = function(e, s, r, a, o, i, n, t, u, d, m, l, p, c, h, f, g, y, v, b, w, _, A) {
- users = e, dates = s, addresses = r, payments = a, roles = o, roles_description = i,
- names = n, phones = t, path = u, userKeys = d, permissions = m, permissionsList = l,
- dateTypes = p, logger = c, bcrypt = h, makePassword = f, makeDate = g, usernameBlacklist = y,
- charactersBlacklist = v, renewAccounts = b, user_messages = w, capitalise = _, async = A,
- keys = {
- address: Object.keys(addresses.schema.paths),
- dates: Object.keys(dates.schema.paths),
- payments: Object.keys(payments.schema.paths),
- roles: Object.keys(roles.schema.paths),
- roles_description: Object.keys(roles_description.schema.paths),
- name: Object.keys(names.schema.paths),
- phones: Object.keys(phones.schema.paths)
- };
- }, exports.myProfile = function(e, s) {
- if (e.isAuthenticated()) {
- var r = e.user.username;
- s.redirect("/profile/" + (r + ""));
- } else {
- e.flash("error", "You must be logged in to view that page "), s.redirect("/");
- }
- }, exports.getProfile = function(e, s) {
- logger.log("action", "A user is trying to view a user profile "), permissions.getUserPermissions(e, s, retrieveProfile);
- }, exports.listProfiles = function(e, s) {
- permissions.getUserPermissions(e, s, function(e, s, r) {
- showProfiles(e, s, r, function(r, a, o) {
- o.userList = a, e.flash("errorerrors", r), logger.log("action", "A user is viewing a list of all users "),
- s.render(path.resolve("./templates/userList.pug"), o);
- });
- });
- }, exports.getCertainProfiles = function(e, s) {
- if ("current" == e.params.param) {
- permissions.getUserPermissions(e, s, function(e, s, r) {
- showProfiles(e, s, r, function(r, a, o) {
- var i = {};
- for (var n in a) {
- a[n][" "].membershipapproved + "" != "6" && a[n][" "].membershipapproved + "" != "8" && (i[n] = a[n]);
- }
- o.userList = i, e.flash("errorerrors", r), logger.log("action", "A user is viewing a list of all current users "),
- s.render(path.resolve("./templates/userList.pug"), o);
- });
- });
- } else {
- if ("membership" == e.params.param) {
- if (e.query.status) {
- if (1 == e.query.status.isNaN) {
- s.redirect("/profiles/current");
- } else {
- var r = [];
- for (var a in e.query.status) {
- r.push(e.query.status[a] + "");
- }
- permissions.getUserPermissions(e, s, function(e, s, a) {
- showProfiles(e, s, a, function(a, o, i) {
- var n = {};
- for (var t in o) {
- r.indexOf(o[t][" "].membershipapproved + "") > -1 && (n[t] = o[t]);
- }
- i.userList = n, e.flash("errorerrors", a), logger.log("action", "A user is viewing a list of all users with membership statuses of " + (e.query.status + "")),
- s.render(path.resolve("./templates/userList.pug"), i);
- });
- });
- }
- } else {
- s.redirect("/profiles/current");
- }
- } else {
- if ("noroles" == e.params.param) {
- permissions.getUserPermissions(e, s, function(e, s, r) {
- r = permissions.delete(r, [ permissionsList.permissions.view_role ]), showProfiles(e, s, r, function(r, a, o) {
- o.userList = a, e.flash("errorerrors", r), logger.log("action", "A user is viewing a list of all users without user roles "),
- s.render(path.resolve("./templates/userList.pug"), o);
- });
- });
- } else {
- if ("normal" == e.params.param) {
- var o = permissions.getUnauthenticatedPermissions();
- showProfiles(e, s, o, function(r, a, o) {
- o.userList = a, e.flash("errorerrors", r), logger.log("action", "A user is viewing a list of all users "),
- s.render(path.resolve("./templates/userList.pug"), o);
- });
- } else {
- e.flash("error", "The filter sent may be incorrect "), s.redirect("/");
- }
- }
- }
- }
- }, exports.change = function(e, s) {
- "password" == e.params.data ? permissions.getUserPermissions(e, s, changePassword) : "addemail" == e.params.data ? permissions.getUserPermissions(e, s, changeEmail) : "addphone" == e.params.data ? permissions.getUserPermissions(e, s, changePhone) : (logger.log("error", "A user tried to go to a page to change an invalid data type", {
- username: e.params.name,
- data: e.params.data
- }), e.flash("error", "The datum you tried to edit was not a valid data type "),
- s.redirect("/profile/" + e.params.name));
- }, exports.edit = function(e, s) {
- "password" == e.params.data ? permissions.getUserPermissions(e, s, editPassword) : "deleteemail" == e.params.data ? permissions.getUserPermissions(e, s, deleteEmail) : "addemail" == e.params.data ? permissions.getUserPermissions(e, s, addEmail) : "deletephone" == e.params.data ? permissions.getUserPermissions(e, s, deletePhone) : "addphone" == e.params.data ? permissions.getUserPermissions(e, s, addPhone) : "suspendaccount" == e.params.data ? permissions.getUserPermissions(e, s, suspendProfile) : "data" == e.params.data ? permissions.getUserPermissions(e, s, changeData) : (logger.log("error", "A user tried to edit an invalid data type", {
- username: e.params.name,
- data: e.params.data
- }), e.flash("error", "The datum you tried to edit was not a valid data type "),
- s.redirect("/profile/" + e.params.name));
- }, exports.membership = function(e, s) {
- permissions.getUserPermissions(e, s, membershipDetails);
- }, exports.adminViewMembership = function(e, s) {
- permissions.getUserPermissions(e, s, function(e, s, r) {
- 1 == permissions.check(r, [ permissionsList.permissions.membership ]) ? users.find({}, function(r, a) {
- if (r) {
- e.flash("errorobj", r), logger.log("error", "There was an error when a user tried to view all membership status "),
- s.status(500), s.redirect("/");
- } else {
- var o = !0;
- if (e.user ? e.user.username ? logger.log("action", "A user is viewing the page showing all the memberships ", {
- User: e.user.username
- }) : (o = !1, s.redirect("/logout")) : logger.log("action", "A user who is not logged in is viewing the page showing all the memberships "),
- o === !0) {
- var i = {};
- for (var n in a) {
- i[a[n].username] = {
- _id: a[n]._id,
- membershipStatus: a[n].membershipapproved
- };
- }
- s.render(path.resolve("./views/viewMemberships.pug"), {
- title: "View membership information ",
- styles: [],
- scripts: [ "makeURL.js", "adminMembership.js" ],
- users: i
- });
- }
- }
- }) : (e.flash("error", "You do not have permission to view this page "), s.redirect("/"));
- });
- }, exports.updateMembership = function(e, s) {
- if (e.isAuthenticated() && e.user) {
- var r = isOwn(e, e.user.username, e.params.name);
- "username" == e.params.data ? permissions.getUserPermissions(e, s, function(e, s, a) {
- if (permissions.check(r === !0 && permissions.check(a, [ permissions.getFieldPermission("username", r)[0] ]) || permissions.check(a, [ permissionsList.permissions.edit_username ]))) {
- if (null != e.body.newusername && void 0 != e.body.newusername && "" != e.body.newusername) {
- var o = !1;
- for (var i in charactersBlacklist) {
- e.body.newusername.indexOf(charactersBlacklist[i]) > -1 && (o = !0);
- }
- usernameBlacklist.indexOf(e.body.newusername) > -1 && (o = !0), o === !0 ? e.flash("error", "The username you entered is not alowed ") : users.findOne({
- username: e.body.newusername
- }, function(r, a) {
- r ? (e.flash("errorobj", r), logger.log("error", "There was an error when searching for users when a user tried to update a username ", {
- Error: r,
- User: e.user.username,
- Editteduser: e.params.name,
- Newusername: e.body.newusername
- }), s.status(500), s.redirect("/")) : a ? (e.flash("error", "There is already a user with the username " + a.username),
- s.redirect("/profile/" + e.params.name + "/membership")) : users.update({
- username: e.params.name
- }, {
- username: e.body.newusername
- }, function(r, a, o) {
- logger.log("transaction", "Username change status: ", {
- Error: r,
- Count: a,
- Status: o
- }), r ? (logger.log("error", "There was an error when updating a user's username "),
- e.flash("errorobj", r), s.status(500), s.redirect("/")) : (e.flash("success", "Your username was successfully changed "),
- s.redirect("/profile/" + e.body.newusername + "/membership"));
- });
- });
- } else {
- e.flash("error", "You did not send a new username "), s.redirect("/profile/" + e.params.name + "/membership");
- }
- } else {
- e.flash("error", "You do not have permission to change this user's username "),
- s.redirect("/profile/" + e.params.name + "/membership");
- }
- }) : "suspendaccount" == e.params.data ? permissions.getUserPermissions(e, s, suspendProfile) : "renew" == e.params.data ? permissions.getUserPermissions(e, s, function(e, s, a) {
- 1 == r || permissions.check(a, [ permissionsList.permissions.membership ]) ? users.findOne({
- username: e.params.name
- }, function(r, a) {
- if (r) {
- e.flash("errorobj", r), logger.log("error", "There was an error finding users when a user requested full membership ", {
- Error: r,
- User: e.user.username,
- AffectedUser: e.params.name
- }), s.status(500), s.redirect("/");
- } else {
- if (a) {
- var o = a.membershipapproved;
- 7 === o ? (e.flash("error", "An exempt user cannot request full membership "), s.redirect("/profile/" + e.params.name + "/membership")) : 6 === o ? (e.flash("error", "A suspended user cannot request full membership "),
- s.redirect("/profile/" + e.params.name + "/membership")) : 2 === o || 5 === o ? (e.flash("error", "You have already payed for full membership "),
- s.redirect("/profile/" + e.params.name + "/membership")) : 1 === o || 4 === o ? (e.flash("error", "You have already requested full membership "),
- s.redirect("/profile/" + e.params.name + "/membership")) : (o += 1, users.update({
- username: a.username
- }, {
- membershipapproved: o
- }, function(r, a, o) {
- logger.log("transaction", "User membership status update status: ", {
- Error: r,
- Count: a,
- Status: o
- }), r ? (logger.log("error", "There was an error when a user tried to rquest full membership "),
- e.flash("errorobj", r), s.status(500), s.redirect("/profile/" + e.params.name + "/membership")) : (e.flash("success", "You successfuly requested full membership "),
- s.status(200), s.redirect("/profile/" + e.params.name + "/membership"));
- }));
- } else {
- e.flash("error", "The user you are trying to update does not exist "), s.redirect("/");
- }
- }
- }) : (e.flash("error", "You do not have permission to update this user's membership status "),
- s.redirect("/profile/" + e.params.name + "/membership"));
- }) : (e.flash("error", "The membership datum you tried to edit was an invalid type "),
- s.redirect("/profile/" + e.params.name + "/membership"));
- } else {
- e.flash("error", "You must be logged in to edit user membership information "),
- s.redirect("/");
- }
- }, exports.adminChangeMembershipPermissions = function(e, s) {
- permissions.getUserPermissions(e, s, adminChangeMembership);
- }, exports.saveMessages = function(e, s) {
- if (e.body) {
- var r = !0, a = "", o = e.body.email;
- if (e.isAuthenticated() && e.user && (a = e.user.username, null == e.body.reply || void 0 == e.body.reply || "" == e.body.reply ? o = e.user.emails : (null == e.body.reply || void 0 == e.body.reply || "" == e.body.reply) && (r = !1,
- e.flash("error", "You must enter an email address if you are not logged in "), s.redirect("/contact"))),
- (null == e.body.about || void 0 == e.body.about || "" == e.body.about || null == e.body.message || void 0 == e.body.message || "" == e.body.message) && (r = !1,
- e.flash("error", "You must enter a message and state what the query is about "),
- s.redirect("/contact")), r === !0) {
- var i = new user_messages({
- username: a,
- email: o,
- about: e.body.about,
- message: e.body.message
- });
- i.save(function(r) {
- r ? (logger.log("error", "There was an error when saving a query submitted by a user ", {
- Error: r,
- Username: a
- }), e.flash("error", "There was an error submitting you message "), s.redirect("/")) : (logger.log("action", "A user submitted a query "),
- e.flash("success", "You message was submitted successfully "), s.redirect("/"));
- });
- }
- } else {
- e.flash("error", "No data was sent to the server "), s.redirect("/contact");
- }
- }, exports.viewMessages = function(e, s) {
- permissions.getUserPermissions(e, s, function(e, s, r) {
- permissions.check(r, [ permissions.getFieldPermission("contact", !1)[1] ]) ? user_messages.find({}, function(r, a) {
- r ? (logger.log("error", "There was an error when a user tried to see all the submitted queries ", {
- Error: r
- }), e.flash("error", "There was an error when retrieving the messages "), s.redirect("/")) : 0 == a.length ? (e.flash("info", "There are no stored queries "),
- s.redirect("/")) : s.render(path.resolve("./views/viewMessages.pug"), {
- title: "View Submitted Messages ",
- styles: [ "datatables.net-dt/css/jquery.dataTables.css" ],
- scripts: [ "datatables.net/js/jquery.dataTables.js", "viewMessages.js" ],
- queries: a,
- keys: Object.keys(user_messages.schema.paths),
- capitalise: capitalise
- });
- }) : (e.flash("error", "You do not have permission to view a list of messages "),
- s.redirect("/"));
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement