Skip to content

Commit 52768bf

Browse files
author
Martii
committed
Sync remove controller with latest nomenclature and flag controller signature
* Streamline redirects for removing to point back to the author scripts list or general users * One whitespace adjustment on flag controller Applies to OpenUserJS#819 Originally applies to OpenUserJS#262 ... treads on OpenUserJS#262 (comment) *(preauth)*
1 parent da435f7 commit 52768bf

File tree

3 files changed

+29
-15
lines changed

3 files changed

+29
-15
lines changed

controllers/flag.js

-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ exports.flag = function (aReq, aRes, aNext) {
8484
isLib = true;
8585
// fallthrough
8686
case 'scripts':
87-
8887
aReq.params.username = aReq.params[2];
8988
aReq.params.scriptname = aReq.params[3]
9089

controllers/remove.js

+28-13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var Script = require('../models/script').Script;
1515
var User = require('../models/user').User;
1616

1717
//--- Controller inclusions
18+
var scriptStorage = require('./scriptStorage');
1819

1920
//--- Library inclusions
2021
var removeLib = require('../libs/remove');
@@ -44,7 +45,10 @@ exports.rm = function (aReq, aRes, aNext) {
4445
var reason = aFields.reason;
4546

4647
var type = aReq.params[0];
47-
var path = aReq.params[1];
48+
var isLib = null;
49+
50+
var installNameBase = null;
51+
var username = null;
4852

4953
var authedUser = aReq.session.user;
5054

@@ -70,21 +74,32 @@ exports.rm = function (aReq, aRes, aNext) {
7074
}
7175

7276
switch (type) {
73-
case 'scripts':
7477
case 'libs':
75-
path += type === 'libs' ? '.js' : '.user.js';
76-
Script.findOne({ installName: path }, function (aErr, aScript) {
77-
removeLib.remove(Script, aScript, authedUser, reason, function (aRemoved) {
78-
if (!aRemoved) {
79-
aNext();
80-
return;
81-
}
82-
aRes.redirect('/');
78+
isLib = true;
79+
// fallthrough
80+
case 'scripts':
81+
aReq.params.username = username = aReq.params[2];
82+
aReq.params.scriptname = aReq.params[3]
83+
84+
installNameBase = scriptStorage.getInstallNameBase(aReq);
85+
86+
Script.findOne({
87+
installName: scriptStorage.caseSensitive(installNameBase +
88+
(isLib ? '.js' : '.user.js'))
89+
}, function (aErr, aScript) {
90+
removeLib.remove(Script, aScript, authedUser, reason, function (aRemoved) {
91+
if (!aRemoved) {
92+
aNext();
93+
return;
94+
}
95+
aRes.redirect('/users/' + encodeURIComponent(username) + '/scripts');
96+
});
8397
});
84-
});
8598
break;
8699
case 'users':
87-
User.findOne({ name: { $regex: new RegExp('^' + path + '$', "i") } },
100+
username = aReq.params[1];
101+
102+
User.findOne({ name: { $regex: new RegExp('^' + username + '$', "i") } },
88103
function (aErr, aUser) {
89104
removeLib.remove(User, aUser, authedUser, reason, function (aRemoved) {
90105
if (!aRemoved) {
@@ -94,7 +109,7 @@ exports.rm = function (aReq, aRes, aNext) {
94109

95110
// Destroy all the sessions belonging to the removed user
96111
destroySessions(aReq, aUser, function () {
97-
aRes.redirect('/');
112+
aRes.redirect('/users');
98113
});
99114
});
100115
});

routes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ module.exports = function (aApp) {
110110
aApp.route(/^\/flag\/(users|scripts|libs)\/((.+?)(?:\/(.+))?)$/).post(flag.flag);
111111

112112
// Remove route
113-
aApp.route(/^\/remove\/(.+?)\/(.+)$/).post(remove.rm);
113+
aApp.route(/^\/remove\/(users|scripts|libs)\/((.+?)(?:\/(.+))?)$/).post(remove.rm);
114114

115115
// Group routes
116116
aApp.route('/groups').get(group.list);

0 commit comments

Comments
 (0)