我有以下注册用户的方法:
// Registration method
exports.register = function(req, res) {
var username = req.body.username,
password = req.body.password,
first = req.body.first;
last = req.body.last;
role = req.body.institution;
nano = require('nano')('http://127.0.0.1:5984');
var users = nano.use('_users');
var user = {
"_id": "org.couchdb.user:" + username,
"name": username,
"type": "user",
"roles": [],
"password": password,
"realname": first + " " + last
};
users.insert(user, function(err, body) {
if(err) {
res.send(err.reason, err.status_code);
} else {
res.send(body, 200);
}
});
};
如您所见,我有一个名为 role 的变量,我想在“roles”数组中设置它。不幸的是,您可能知道,CouchDB 只允许管理员设置角色。我对此没意见,但我将角色用作机构,所以我希望注册用户能够选择他们正在注册的机构,因此它应该自动为他们分配这个角色。如果没有将我的管理员凭据硬编码到此方法中,即
nano.config.url = "http://admin:password@127.0.0.1:5984/"
如何自动将新用户分配给他们指定的角色,正如我所提到的?