Mercurial > kallithea
changeset 2513:388843a3a3c0 beta
Updated create_or_update method to not change API key when password is not updated
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 26 Jun 2012 21:57:31 +0200 |
parents | 8ece6d04a282 |
children | 9b734e9530c2 |
files | rhodecode/lib/db_manage.py rhodecode/model/user.py rhodecode/tests/functional/test_admin_notifications.py rhodecode/tests/functional/test_forks.py rhodecode/tests/test_models.py |
diffstat | 5 files changed, 29 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/lib/db_manage.py Tue Jun 26 04:11:10 2012 +0200 +++ b/rhodecode/lib/db_manage.py Tue Jun 26 21:57:31 2012 +0200 @@ -465,7 +465,7 @@ def create_user(self, username, password, email='', admin=False): log.info('creating user %s' % username) UserModel().create_or_update(username, password, email, - name='RhodeCode', lastname='Admin', + firstname='RhodeCode', lastname='Admin', active=True, admin=admin) def create_default_user(self): @@ -474,7 +474,7 @@ UserModel().create_or_update(username='default', password=str(uuid.uuid1())[:8], email='anonymous@rhodecode.org', - name='Anonymous', lastname='User') + firstname='Anonymous', lastname='User') def create_permissions(self): # module.(access|create|change|delete)_[name]
--- a/rhodecode/model/user.py Tue Jun 26 04:11:10 2012 +0200 +++ b/rhodecode/model/user.py Tue Jun 26 21:57:31 2012 +0200 @@ -101,8 +101,8 @@ log.error(traceback.format_exc()) raise - def create_or_update(self, username, password, email, name, lastname, - active=True, admin=False, ldap_dn=None): + def create_or_update(self, username, password, email, firstname='', + lastname='', active=True, admin=False, ldap_dn=None): """ Creates a new instance if not found, or updates current one @@ -110,7 +110,7 @@ :param password: :param email: :param active: - :param name: + :param firstname: :param lastname: :param active: :param admin: @@ -124,19 +124,23 @@ if user is None: log.debug('creating new user %s' % username) new_user = User() + edit = False else: log.debug('updating user %s' % username) new_user = user + edit = True try: new_user.username = username new_user.admin = admin - new_user.password = get_crypt_password(password) - new_user.api_key = generate_api_key(username) + # set password only if creating an user or password is changed + if edit is False or user.password != password: + new_user.password = get_crypt_password(password) + new_user.api_key = generate_api_key(username) new_user.email = email new_user.active = active new_user.ldap_dn = safe_unicode(ldap_dn) if ldap_dn else None - new_user.name = name + new_user.name = firstname new_user.lastname = lastname self.sa.add(new_user) return new_user
--- a/rhodecode/tests/functional/test_admin_notifications.py Tue Jun 26 04:11:10 2012 +0200 +++ b/rhodecode/tests/functional/test_admin_notifications.py Tue Jun 26 21:57:31 2012 +0200 @@ -5,9 +5,9 @@ from rhodecode.model.notification import NotificationModel from rhodecode.model.meta import Session + class TestNotificationsController(TestController): - def tearDown(self): for n in Notification.query().all(): inst = Notification.get(n.notification_id) @@ -19,7 +19,8 @@ u1 = UserModel().create_or_update(username='u1', password='qweqwe', email='u1@rhodecode.org', - name='u1', lastname='u1').user_id + firstname='u1', lastname='u1') + u1 = u1.user_id response = self.app.get(url('notifications')) self.assertTrue('''<div class="table">No notifications here yet</div>''' @@ -58,10 +59,10 @@ u1 = UserModel().create_or_update(username='u1', password='qweqwe', email='u1@rhodecode.org', - name='u1', lastname='u1') + firstname='u1', lastname='u1') u2 = UserModel().create_or_update(username='u2', password='qweqwe', email='u2@rhodecode.org', - name='u2', lastname='u2') + firstname='u2', lastname='u2') # make notifications notification = NotificationModel().create(created_by=cur_user, @@ -73,13 +74,12 @@ u2 = User.get(u2.user_id) # check DB - get_notif = lambda un:[x.notification for x in un] + get_notif = lambda un: [x.notification for x in un] self.assertEqual(get_notif(cur_user.notifications), [notification]) self.assertEqual(get_notif(u1.notifications), [notification]) self.assertEqual(get_notif(u2.notifications), [notification]) cur_usr_id = cur_user.user_id - response = self.app.delete(url('notification', notification_id= notification.notification_id)) @@ -87,19 +87,15 @@ cur_user = User.get(cur_usr_id) self.assertEqual(cur_user.notifications, []) - -# def test_delete_browser_fakeout(self): -# response = self.app.post(url('notification', notification_id=1), params=dict(_method='delete')) - def test_show(self): self.log_user() cur_user = self._get_logged_user() u1 = UserModel().create_or_update(username='u1', password='qweqwe', email='u1@rhodecode.org', - name='u1', lastname='u1') + firstname='u1', lastname='u1') u2 = UserModel().create_or_update(username='u2', password='qweqwe', email='u2@rhodecode.org', - name='u2', lastname='u2') + firstname='u2', lastname='u2') notification = NotificationModel().create(created_by=cur_user, subject=u'test', @@ -108,12 +104,3 @@ response = self.app.get(url('notification', notification_id=notification.notification_id)) - -# def test_show_as_xml(self): -# response = self.app.get(url('formatted_notification', notification_id=1, format='xml')) -# -# def test_edit(self): -# response = self.app.get(url('edit_notification', notification_id=1)) -# -# def test_edit_as_xml(self): -# response = self.app.get(url('formatted_edit_notification', notification_id=1, format='xml'))
--- a/rhodecode/tests/functional/test_forks.py Tue Jun 26 04:11:10 2012 +0200 +++ b/rhodecode/tests/functional/test_forks.py Tue Jun 26 21:57:31 2012 +0200 @@ -12,7 +12,7 @@ self.password = u'qweqwe' self.u1 = UserModel().create_or_update( username=self.username, password=self.password, - email=u'fork_king@rhodecode.org', name=u'u1', lastname=u'u1' + email=u'fork_king@rhodecode.org', firstname=u'u1', lastname=u'u1' ) self.Session.commit()
--- a/rhodecode/tests/test_models.py Tue Jun 26 04:11:10 2012 +0200 +++ b/rhodecode/tests/test_models.py Tue Jun 26 21:57:31 2012 +0200 @@ -185,7 +185,7 @@ usr = UserModel().create_or_update(username=u'test_user', password=u'qweqwe', email=u'u232@rhodecode.org', - name=u'u1', lastname=u'u1') + firstname=u'u1', lastname=u'u1') Session.commit() self.assertEqual(User.get_by_username(u'test_user'), usr) @@ -207,7 +207,7 @@ usr = UserModel().create_or_update(username=u'test_user', password=u'qweqwe', email=u'main_email@rhodecode.org', - name=u'u1', lastname=u'u1') + firstname=u'u1', lastname=u'u1') Session.commit() def do(): @@ -225,7 +225,7 @@ usr = UserModel().create_or_update(username=u'test_user', password=u'qweqwe', email=u'main_email@rhodecode.org', - name=u'u1', lastname=u'u1') + firstname=u'u1', lastname=u'u1') Session.commit() m = UserEmailMap() @@ -255,7 +255,7 @@ self.u1 = UserModel().create_or_update(username=u'u1', password=u'qweqwe', email=u'u1@rhodecode.org', - name=u'u1', lastname=u'u1') + firstname=u'u1', lastname=u'u1') Session.commit() self.u1 = self.u1.user_id @@ -433,7 +433,7 @@ self.u1 = UserModel().create_or_update(username=u'u1', password=u'qweqwe', email=u'u1@rhodecode.org', - name=u'u1', lastname=u'u1') + firstname=u'u1', lastname=u'u1') def tearDown(self): perm = Permission.query().all() @@ -474,16 +474,16 @@ def setUp(self): self.u1 = UserModel().create_or_update( username=u'u1', password=u'qweqwe', - email=u'u1@rhodecode.org', name=u'u1', lastname=u'u1' + email=u'u1@rhodecode.org', firstname=u'u1', lastname=u'u1' ) self.u2 = UserModel().create_or_update( username=u'u2', password=u'qweqwe', - email=u'u2@rhodecode.org', name=u'u2', lastname=u'u2' + email=u'u2@rhodecode.org', firstname=u'u2', lastname=u'u2' ) self.anon = User.get_by_username('default') self.a1 = UserModel().create_or_update( username=u'a1', password=u'qweqwe', - email=u'a1@rhodecode.org', name=u'a1', lastname=u'a1', admin=True + email=u'a1@rhodecode.org', firstname=u'a1', lastname=u'a1', admin=True ) Session.commit()