contrib: add Admin page to update contributor status. Start migrating from User.backer => User.contributor
This commit is contained in:
@@ -17,7 +17,7 @@ var api = module.exports;
|
||||
*/
|
||||
|
||||
var itemFields = 'items.armor items.head items.shield items.weapon items.currentPet items.pets'; // TODO just send down count(items.pets) for better performance
|
||||
var partyFields = 'profile preferences stats achievements party backer flags.rest auth.timestamps ' + itemFields;
|
||||
var partyFields = 'profile preferences stats achievements party backer contributor balance flags.rest auth.timestamps ' + itemFields;
|
||||
var nameFields = 'profile.name';
|
||||
var challengeFields = '_id name';
|
||||
var guildPopulate = {path: 'members', select: nameFields, options: {limit: 15} };
|
||||
@@ -46,6 +46,24 @@ api.getMember = function(req, res) {
|
||||
})
|
||||
}
|
||||
|
||||
api.updateMember = function(req, res) {
|
||||
var user = res.locals.user;
|
||||
if (!(user.contributor && user.contributor.admin)) return res.json(401, {err:"You don't have access to save this user"});
|
||||
async.waterfall([
|
||||
function(cb){
|
||||
User.findById(req.params.uid, cb);
|
||||
},
|
||||
function(member, cb){
|
||||
if (!member) return res.json(404, {err: "User not found"});
|
||||
_.merge(member, _.pick(req.body, ['contributor', 'balance']));
|
||||
member.save(cb);
|
||||
}
|
||||
], function(err, saved){
|
||||
if (err) return res.json(500,{err:err});
|
||||
res.json(204);
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch groups list. This no longer returns party or tavern, as those can be requested indivdually
|
||||
* as /groups/party or /groups/tavern
|
||||
|
||||
+8
-2
@@ -54,12 +54,18 @@ var UserSchema = new Schema({
|
||||
|
||||
backer: {
|
||||
tier: Number,
|
||||
admin: Boolean,
|
||||
//admin: Boolean, // FIXME migrate to contributor.admin
|
||||
npc: String,
|
||||
contributor: String,
|
||||
//contributor: String, // FIXME migrate to contributor.text
|
||||
tokensApplied: Boolean
|
||||
},
|
||||
|
||||
contributor: {
|
||||
level: Number, // 1-7, see https://trello.com/c/wkFzONhE/277-contributor-gear
|
||||
admin: Boolean,
|
||||
text: String, // Artisan, Friend, Blacksmith, etc
|
||||
},
|
||||
|
||||
balance: Number,
|
||||
filters: {type: Schema.Types.Mixed, 'default': {}},
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ router["delete"]('/groups/:gid/chat/:messageId', auth.auth, groups.attachGroup,
|
||||
|
||||
/* Members */
|
||||
router.get('/members/:uid', groups.getMember);
|
||||
router.post('/members/:uid', auth.auth, groups.updateMember); // only for admins
|
||||
|
||||
// Market
|
||||
router.post('/market/buy', auth.auth, user.marketBuy);
|
||||
|
||||
Reference in New Issue
Block a user