equal
deleted
inserted
replaced
489 """ |
489 """ |
490 session = self.internal_session() |
490 session = self.internal_session() |
491 try: |
491 try: |
492 if session.execute('EUser X WHERE X login %(login)s', {'login': login}): |
492 if session.execute('EUser X WHERE X login %(login)s', {'login': login}): |
493 return False |
493 return False |
|
494 if session.execute('EUser X WHERE X use_email C, C address %(login)s', |
|
495 {'login': login}): |
|
496 return False |
494 # we have to create the user |
497 # we have to create the user |
495 user = self.vreg.etype_class('EUser')(session, None) |
498 user = self.vreg.etype_class('EUser')(session, None) |
496 if isinstance(password, unicode): |
499 if isinstance(password, unicode): |
497 # password should *always* be utf8 encoded |
500 # password should *always* be utf8 encoded |
498 password = password.encode('UTF8') |
501 password = password.encode('UTF8') |
500 kwargs['upassword'] = password |
503 kwargs['upassword'] = password |
501 user.update(kwargs) |
504 user.update(kwargs) |
502 self.glob_add_entity(session, user) |
505 self.glob_add_entity(session, user) |
503 session.execute('SET X in_group G WHERE X eid %(x)s, G name "users"', |
506 session.execute('SET X in_group G WHERE X eid %(x)s, G name "users"', |
504 {'x': user.eid}) |
507 {'x': user.eid}) |
|
508 # FIXME this does not work yet |
|
509 if '@' in login: |
|
510 session.execute('INSERT EmailAddress X: X address "%(login)s", ' |
|
511 'U primary_email X, U use_email X WHERE U login "%(login)s"', |
|
512 {'login':login}) |
505 session.commit() |
513 session.commit() |
506 finally: |
514 finally: |
507 session.close() |
515 session.close() |
508 return True |
516 return True |
509 |
517 |