Mercurial > public > src > rhodecode
changeset 2096:9ddbfaeefb73 beta
API: allowed password field to be null when used with ldap_dn ref #362
- added errors about non unique email to create_user api function
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 21 Feb 2012 01:18:00 +0200 |
parents | 324ac367a4da |
children | b63adad7c4af |
files | rhodecode/controllers/api/api.py |
diffstat | 1 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/api/api.py Mon Feb 20 23:00:54 2012 +0200 +++ b/rhodecode/controllers/api/api.py Tue Feb 21 01:18:00 2012 +0200 @@ -28,18 +28,15 @@ import traceback import logging -from sqlalchemy.orm.exc import NoResultFound - from rhodecode.controllers.api import JSONRPCController, JSONRPCError from rhodecode.lib.auth import HasPermissionAllDecorator, \ - HasPermissionAnyDecorator + HasPermissionAnyDecorator, PasswordGenerator from rhodecode.model.meta import Session from rhodecode.model.scm import ScmModel from rhodecode.model.db import User, UsersGroup, RepoGroup, Repository from rhodecode.model.repo import RepoModel from rhodecode.model.user import UserModel -from rhodecode.model.repo_permission import RepositoryPermissionModel from rhodecode.model.users_group import UsersGroupModel from rhodecode.model.repos_group import ReposGroupModel @@ -131,7 +128,7 @@ return result @HasPermissionAllDecorator('hg.admin') - def create_user(self, apiuser, username, password, email, firstname=None, + def create_user(self, apiuser, username, email, password, firstname=None, lastname=None, active=True, admin=False, ldap_dn=None): """ Create new user @@ -149,6 +146,13 @@ if User.get_by_username(username): raise JSONRPCError("user %s already exist" % username) + if User.get_by_email(email, case_insensitive=True): + raise JSONRPCError("email %s already exist" % email) + + if ldap_dn: + # generate temporary password if ldap_dn + password = PasswordGenerator().gen_password(length=8) + try: usr = UserModel().create_or_update( username, password, email, firstname,