@@ -12,6 +12,7 @@ var ratings = require("../lib/ratings");
12
12
var templates = require ( "../lib/templates" ) ;
13
13
var events = require ( "../lib/events" ) ;
14
14
var collections = require ( "../lib/collections" ) ;
15
+ var settings = require ( "../config" ) ;
15
16
16
17
var app = express ( ) ;
17
18
@@ -53,6 +54,8 @@ function getNode(id, scope, collection, req,res) {
53
54
}
54
55
npmNodes . get ( id ) . then ( function ( node ) {
55
56
node . sessionuser = req . session . user ;
57
+ node . isAdmin = node . sessionuser && ( settings . admins . indexOf ( req . session . user . login ) != - 1 ) ;
58
+ node . Admins = settings . admins
56
59
node . csrfToken = req . csrfToken ( ) ;
57
60
node . pageTitle = req . params . id + " (node)" ;
58
61
@@ -305,6 +308,31 @@ app.get("/add/node",appUtils.csrfProtection(),function(req,res) {
305
308
res . send ( mustache . render ( templates . addNode , context , templates . partials ) ) ;
306
309
} ) ;
307
310
311
+ app . delete ( "/node/:scope(@[^\\/]{1,})?/:id([^@][^\\/]{1,})" , appUtils . csrfProtection ( ) , function ( req , res ) {
312
+ var id = req . params . id ;
313
+ if ( req . params . scope ) {
314
+ id = req . params . scope + "/" + id ;
315
+ }
316
+ const isValid = validatePackage ( id )
317
+ if ( ! isValid . validForNewPackages && ! isValid . validForOldPackages ) {
318
+ res . status ( 404 ) . send ( )
319
+ return
320
+ }
321
+ if ( ! req . session . user || settings . admins . indexOf ( req . session . user . login ) === - 1 ) {
322
+ res . status ( 404 ) . send ( )
323
+ return
324
+ }
325
+ npmNodes . remove ( id ) . then ( ( ) => {
326
+ res . writeHead ( 303 , {
327
+ Location : "/"
328
+ } ) ;
329
+ res . end ( ) ;
330
+ } ) . catch ( err => {
331
+ res . status ( 400 ) . send ( ) ;
332
+ } )
333
+ } ) ;
334
+
335
+
308
336
app . post ( "/add/node" , appUtils . csrfProtection ( ) , function ( req , res ) {
309
337
var context = { } ;
310
338
context . sessionuser = req . session . user ;
0 commit comments