@@ -31,6 +31,7 @@ var validate = require("brackets-extensibility/package-validator").validate,
3131 semver = require ( "semver" ) ,
3232 clone = require ( "clone" ) ,
3333 logger = require ( "./logging" ) ,
34+ user_utils = require ( "./user_utils" ) ,
3435 _ = require ( "lodash" ) ;
3536
3637/**
@@ -238,7 +239,7 @@ function addDownloadDataToPackage(name, newVersionDownloads, recentDownloads) {
238239 * @param {String } user identifier for the person submitting the file (e.g. "github:someusername")
239240 * @param {Function } callback (err, entry)
240241 */
241- function addPackage ( packagePath , userID , callback ) {
242+ function addPackage ( packagePath , user , callback ) {
242243 if ( ! validConfiguration ( callback ) ) {
243244 return ;
244245 }
@@ -276,7 +277,7 @@ function addPackage(packagePath, userID, callback) {
276277 entry = clone ( registry [ result . metadata . name ] ) ;
277278
278279 // Verify that the user is authorized to add this package
279- if ( entry . owner !== userID ) {
280+ if ( ! user_utils . isOwner ( entry , user ) ) {
280281 callback ( new Error ( Errors . NOT_AUTHORIZED ) , null ) ;
281282 return ;
282283 }
@@ -299,7 +300,7 @@ function addPackage(packagePath, userID, callback) {
299300 // add
300301 entry = {
301302 metadata : result . metadata ,
302- owner : userID ,
303+ owner : user . owner ,
303304 versions : [ {
304305 version : result . metadata . version ,
305306 published : new Date ( ) . toJSON ( )
@@ -371,14 +372,14 @@ function changePackageRequirements(entry, requirements) {
371372 * @param {string } name extension name
372373 * @param {string } userID owner or admin that is submitting the request
373374 */
374- function _packageManipulatorWrapper ( func , name , userID ) {
375+ function _packageManipulatorWrapper ( func , name , user ) {
375376 var callback = arguments [ arguments . length - 1 ] ;
376377 var entry = registry [ name ] ;
377378 if ( ! entry ) {
378379 callback ( new Error ( Errors . UNKNOWN_EXTENSION ) ) ;
379380 return ;
380381 }
381- if ( entry . owner !== userID && config . admins . indexOf ( userID ) === - 1 ) {
382+ if ( config . admins . indexOf ( user . owner ) === - 1 && ! user_utils . isOwner ( entry , user ) ) {
382383 callback ( new Error ( Errors . NOT_AUTHORIZED ) ) ;
383384 return ;
384385 }
0 commit comments