Ошибка создания пользователя в CouchDB 1.0

Моя система - Ubuntu 10.04, и у меня установлена ​​CouchDB 1.0. Я могу создать администратора или несколько администраторов, войти в систему как администратор, и все работает отлично.

Начиная с версии 0.11 в CouchDB существует понятие пользователей, которые не являются администраторами и могут иметь детальные права на базы данных. Я хочу создать такого пользователя. Я открываю Futon, я не вошел в систему и нажимаю ссылку «Регистрация» (нижний правый угол). Тогда возникает вопрос об имени пользователя и пароле. Когда я заполняю форму и отправляю ее, в поле «Имя пользователя» появляется очень длинное сообщение об ошибке:

Ошибка регистрации: {gen_server, call, [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 >>]} , {[{<< "language" >>, << "javascript" >>}, {<< "validate_doc_update" >>, << "\ n функция (newDoc, oldDoc, userCtx) {\ n if ((oldDoc && oldDoc.type! == 'пользователь') || newDoc.type! == 'пользователь') {\ n throw ({запрещено: 'doc.type должен быть пользователем'}); \ n} // мы разрешаем только пользовательские документы на данный момент \ n \ n if (newDoc._deleted === true) {\ n // разрешить удаление администраторами и сопоставление пользователей \ n // без проверки других полей \ n if ((userCtx.roles.indexOf ( '_admin')! == -1) || \ n (userCtx.name == oldDoc.name)) {\ n return; \ n} else {\ n throw ({запрещено: 'Только другие администраторы могут удалять другие пользовательские документы) . '}); \ n} \ n} \ n \ n if (! newDoc.name) {\ n throw ({запрещено:' требуется doc.name '}); \ n} \ n \ n if (! (newDoc.roles && (typeof newDoc.roles.length! == 'undefined'))) {\ n throw ({запрещено: 'doc.roles должен быть массивом'}); \ n} \ n \ n if ( newDoc._id! == ('org.couchdb.user:' + newDoc.name)) {\ n throw ({\ n запрещено: 'ID документа должен иметь форму org.couchdb.user: name' \ n}); \ n} \ n \ n if (oldDoc) {// проверить все обновления \ n if (oldDoc. name! == newDoc.name) {\ n throw ({запрещено: 'имена пользователей не могут быть изменены.'}); \ n} \ n} \ n \ n if (newDoc.password_sha &&! newDoc.salt) {\ n throw ({\ n запрещено: 'Пользователи с паролем password_sha должны иметь соль.' + \ n 'См. /_utils/script/couch.js, например, код.' \ n}); \ n} \ n \ n if ( userCtx.roles.indexOf ('_ admin') === -1) {\ n if (oldDoc) {// проверка обновлений без прав администратора \ n if (userCtx.name! == newDoc.name) {\ n throw ( {\ n запрещено: 'Вы можете обновлять только свой собственный пользовательский документ.' \ n}); \ n} \ n // проверять обновления ролей \ n var oldRoles = oldDoc.roles.sort (); \ n var newRoles = newDoc .roles.sort (); \ n \ n if (oldRoles.length! == newRoles.length) {\ n throw ({запрещено: 'Только _admin может редактировать роли'}); \ n} \ n \ n для ( var i = 0; я <oldRoles.length; i ++) {\ n if (oldRoles [i]! == newRoles [i]) {\ n throw ({запрещено: 'Только _admin может редактировать роли'}); \ n} \ n} \ n} иначе if (newDoc .roles.length> 0) {\ n throw ({запрещено: 'толькоАдминистратор может устанавливать роли '}); \ n} \ n} \ n \ n // нет системных ролей в пользователях db \ n для (var i = 0; i <newDoc.roles.length; i ++) {\ n if ( newDoc.roles [i] [0] === '') {\ n throw ({\ n запрещено: \ n' Нет системных ролей (начиная с подчеркивания) в пользователях db. '\ n}); \ n} \ n} \ n \ n // нет имен систем в качестве имен \ n if (newDoc.name [0] === '_') {\ n throw ({запрещено: 'Имя пользователя не может начинаться с подчеркивания.'}); \ n} \ n} \ n ">>}] }, [], false, []}, {<< "_ design / _auth" >>, << "1-54a591939c91922a35efee07eb2c3a72" >>}}]}

Что это? Как я могу создавать пользователей в CouchDB?

Ответы на вопрос(4)

Ваш ответ на вопрос