Mon système est ubuntu 10.04 et CouchDB 1.0 est installé. Je peux créer un admin, ou plus d'administrateurs, connectez-vous en tant qu'administrateur et tout fonctionne bien.Erreur lors de la création de l'utilisateur dans CouchDB 1.0
Depuis 0.11 dans CouchDB il y a la notion d'utilisateurs qui ne sont pas des admins, et peuvent avoir des droits à grain fin aux bases de données. Je veux créer un tel utilisateur. J'ouvre Futon, je ne suis pas connecté, et je clique sur le lien "Inscription" (coin inférieur droit). Ensuite, il y a une question sur le nom d'utilisateur et mot de passe. Quand je remplir le formulaire et le soumettre, il y a très long message d'erreur dans "Nom d'utilisateur" champ:
error Inscription: {gen_server, appel, [couch_query_servers, {get_proc, {doc, < < "_design/_auth" >>, {1, [< < 84,165,145,147,156,145,146,42,53,239,238,7, 235,44,58,114 >>]}, {[{< < "langue" >>, < < "javascript" >>}, {< < "validate_doc_update" >>, < < « fonction \ n (newdoc, oldDoc, userCtx) {\ n if ((oldDoc & & oldDoc.type! == 'utilisateur') || newDoc.type! == 'utilisateur') {\ n throw ({interdit: 'doc.type doit être un utilisateur'}); \ n} // nous n'autorisons que l'utilisateur doc s pour le moment \ n \ n if (newDoc._deleted === true) {\ n // autoriser les suppressions par les administrateurs et les utilisateurs correspondants \ n // sans vérifier les autres champs \ n if ((userCtx.roles.indexOf (' _admin ')! == -1) || \ n (userCtx.name == ancienDoc.name)) {\ n return; \ n} else {\ n throw ({interdit:' Seuls les administrateurs peuvent supprimer d'autres documents utilisateur. '}); \ n} \ n \ n \ n if (! newDoc.name) {\ n throw ({interdit:' doc.name est requis '}); \ n} \ n \ n if (! newDoc.roles & & (typeof nouveauDoc.roles.length! == 'undefined'))) {\ n throw ({interdit: 'doc.roles doit être un tableau'}); \ n} \ n \ n if (newDoc._id! == ('org.couchdb.user:' + nouveauDoc.name)) {\ n throw ({\ n interdit: 'Doc ID doit être de la forme org.couchdb.user: nom' \ n}); \ n} \ n \ n if (oldDoc) {// valider toutes les mises à jour \ n if (oldDoc.name! == newDoc.name) {\ n throw ({interdit: 'Les noms d'utilisateur ne peuvent pas être changés.'}); \ n} \ n} \ n \ n if (newDoc.password_sha & &! newDoc.salt) {\ n throw ({\ n interdit: 'Les utilisateurs avec password_sha doivent avoir un salt.' + \ N 'Voir /_utils/script/couch.js pour le code exemple.' \ N}); \ n} \ n \ n if (userCtx.roles.indexOf ('_ admin ') === -1) {\ n if (oldDoc) {// valider les mises à jour non-admin \ n if (userCtx.name! == nouveauDoc.name) {\ n throw ({\ n interdit:' Vous pouvez mettez à jour votre propre document utilisateur uniquement. '\ n}); \ n} \ n // valider les mises à jour des rôles \ nvar oldRoles = oldDoc.roles.sort(); \ n var newRoles = newDoc.roles.sort(); n \ n if (oldRoles.length! == newRoles.length) {\ n throw ({interdit: 'Seul _admin peut modifier les rôles'}); \ n} \ n \ n pour (var i = 0; i < oldRoles.length; i ++) {\ n if (oldRoles [i]! == newRoles [i]) {\ n throw ({interdit: 'Seul _admin peut modifier les rôles}}); \ n} \ n} \ n} else if (newDoc .roles.length> 0) {\ n throw ({interdit: 'Seulement admin peut définir les rôles'}); \ n} \ n} \ n \ n // aucun rôle système dans les utilisateurs db \ n pour (var i = 0; i < newDoc.roles.length; i ++) {\ n if (nouveauDoc.roles [i] [0] === '') {\ n throw ({\ n interdit: \ n 'Aucun rôle système (commençant par un trait de soulignement) dans les utilisateurs db. '\ n}); \ n} \ n} \ n \ n // aucun nom de système comme nom \ n if (nouveauDoc.name [0] ===' _ ') { \ n throw ({interdit: 'Nom d'utilisateur ne peut pas commencer par un trait de soulignement.'}); \ n} \ n} \ n ">>}]}, [], false, []}, {< <" _design/_auth « >>, < < "1-54a591939c91922a35efee07eb2c3a72" >>}}]}
Qu'est-ce? Comment puis-je créer des utilisateurs dans CouchDB?
Oui, j'ai un compte administrateur. Lorsque je suis connecté en tant qu'administrateur, il n'y a pas de lien "Inscription". Si je supprime le compte admin, il n'y a pas de lien "Inscription" (seulement celui que vous pouvez utiliser pour créer un compte administrateur). Quand il y a un compte administrateur, mais je ne suis pas connecté et cliquez sur "Inscription" - l'erreur décrite se produit. Cela fonctionne dans Windows. Le problème est seulement sur Ubuntu, donc je suspecte certains droits sur certains fichiers. – amorfis