ユーザーを登録するには、次の方法があります。
// 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);
}
});
};
ご覧のとおり、「roles」配列に設定したいroleという変数があります。残念ながら、ご存知かもしれませんが、CouchDBでは管理者がロールを設定することしかできません。これで問題ありませんが、機関としての役割を使用しているので、登録ユーザーが登録している機関を選択できるようにしたいので、自動的にこの役割を割り当てる必要があります。管理者の資格情報をこのメソッドにハードコーディングせずに、つまり、
nano.config.url = "http://admin:password@127.0.0.1:5984/"
前述のように、指定したロールに新しいユーザーを自動的に割り当てるにはどうすればよいですか?