incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j d <>
Subject CouchDB 0.11.0b921503 user signup errors
Date Thu, 11 Mar 2010 14:09:14 GMT
Attempting to signup a user named "joe" with password "joe" returns
the following server error:

<<\"function(newDoc, oldDoc, userCtx) {\\n                if ((oldDoc
|| newDoc).type != 'user') {\\n                    throw({forbidden :
'doc.type must be user'});\\n                } // we only validate
user docs for now\\n                if (newDoc._deleted === true) {\\n
                   // allow deletes by admins and matching users \\n
                 // without checking the other fields\\n
     if ((userCtx.roles.indexOf('_admin') != -1) || ( == {\\n                        return;\\n
 } else {\\n                        throw({forbidden : 'Only admins
may delete other user docs.'});\\n                    }\\n
   }\\n                if (! {\\n
throw({forbidden : ' is required'});\\n                }\\n
            if (!(newDoc.roles && (typeof newDoc.roles.length !=
'undefined') )) {\\n                    throw({forbidden : 'doc.roles
must be an array'});\\n                }\\n                if
(newDoc._id != 'org.couchdb.user:' {\\n
 throw({forbidden : 'Docid must be of the form
org.couchdb.user:name'});\\n                }\\n                if
(oldDoc) { // validate all updates\\n                    if
( != {\\n
throw({forbidden : 'Usernames may not be changed.'});\\n
     }\\n                }\\n                if (newDoc.password_sha
&& !newDoc.salt) {\\n                    throw({forbidden : 'Users
with password_sha must have a salt. See /_utils/script/couch.js for
example code.'});\\n                }\\n                if
(userCtx.roles.indexOf('_admin') == -1) { // not an admin\\n
         if (oldDoc) { // validate non-admin updates\\n
        if ( != {\\n
throw({forbidden : 'You may only update your own user document.'});\\n
                       }\\n                        // validate role
updates\\n                        var oldRoles =
oldDoc.roles.sort();\\n                        var newRoles =
newDoc.roles.sort();\\n                        if (oldRoles.length !=
newRoles.length) {\\n                            throw({forbidden :
'Only _admin may edit roles'});\\n                        }\\n
               for (var i=0; i < oldRoles.length; i++) {\\n
                if (oldRoles[i] != newRoles[i]) {\\n
             throw({forbidden : 'Only _admin may edit roles'});\\n
                       }\\n                        };\\n
     } else if (newDoc.roles.length > 0) {\\n
throw({forbidden : 'Only _admin may set roles'});\\n
 }\\n                }\\n                // no system roles in users
db\\n                for (var i=0; i < newDoc.roles.length; i++) {\\n
                  if (newDoc.roles[i][0] == '_') {\\n
      throw({forbidden : 'No system roles (starting with underscore)
in users db.'});\\n                    }\\n                };\\n
         // no system names as names\\n                if
([0] == '_') {\\n                    throw({forbidden :
'Username may not start with underscore.'});\\n                }\\n
        }\">>}]},\n                            [],false,[]},\n

This JSON is difficult to parse and is puked to the screen in a red
font onto the signup dialog.  This dump comes from firebug.

Note that creating an admin account "works" in that I can login/out
but there are no documents in the _users database other then the
default design document (is this normal?).  It could be that I
modified the local.ini file to uncomment out the admin section and
added an admin user, then ran couchdb, then stopped couchdb and
commented the admin section out again, then re-ran couchdb and tried
to create the admin from the UI.

View raw message