summaryrefslogtreecommitdiffstats
path: root/ipa-server
diff options
context:
space:
mode:
authorKevin McCarthy <kmccarth@redhat.com>2007-09-19 15:59:01 -0700
committerKevin McCarthy <kmccarth@redhat.com>2007-09-19 15:59:01 -0700
commit4e79c37c604f0e51dab19fc28063b3186df0c6d9 (patch)
treea3667b40af3dc46fbdaf1a2738e22eec0e14a253 /ipa-server
parent036cf58042871e91bb8c86382108da53b9c3b301 (diff)
downloadfreeipa-4e79c37c604f0e51dab19fc28063b3186df0c6d9.tar.gz
freeipa-4e79c37c604f0e51dab19fc28063b3186df0c6d9.tar.xz
freeipa-4e79c37c604f0e51dab19fc28063b3186df0c6d9.zip
Add password changing call to web gui.
Diffstat (limited to 'ipa-server')
-rw-r--r--ipa-server/ipa-gui/ipagui/controllers.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/ipa-server/ipa-gui/ipagui/controllers.py b/ipa-server/ipa-gui/ipagui/controllers.py
index 7e1f2fc28..60921122b 100644
--- a/ipa-server/ipa-gui/ipagui/controllers.py
+++ b/ipa-server/ipa-gui/ipagui/controllers.py
@@ -151,6 +151,7 @@ class Root(controllers.RootController):
return dict(form=user_edit_form, user=kw,
tg_template='ipagui.templates.useredit')
+ password_change = False
try:
orig_user_dict = loads(b64decode(kw.get('user_orig')))
@@ -165,7 +166,7 @@ class Root(controllers.RootController):
new_user.setValue('nsAccountLock', None)
if kw.get('editprotected') == 'true':
if kw.get('userpassword'):
- new_user.setValue('userpassword', kw.get('userpassword'))
+ password_change = True
new_user.setValue('uidnumber', str(kw.get('uidnumber')))
new_user.setValue('gidnumber', str(kw.get('gidnumber')))
@@ -177,13 +178,27 @@ class Root(controllers.RootController):
new_user.getValue('sn')))
rv = client.update_user(new_user)
- turbogears.flash("%s updated!" % kw['uid'])
- raise turbogears.redirect('/usershow', uid=kw['uid'])
+ except ipaerror.exception_for(ipaerror.LDAP_EMPTY_MODLIST), e:
+ if not password_change:
+ turbogears.flash("User update failed: " + str(e))
+ return dict(form=user_edit_form, user=kw,
+ tg_template='ipagui.templates.useredit')
except ipaerror.IPAError, e:
turbogears.flash("User update failed: " + str(e))
return dict(form=user_edit_form, user=kw,
tg_template='ipagui.templates.useredit')
+ try:
+ if password_change:
+ rv = client.modifyPassword(kw['uid'], "", kw.get('userpassword'))
+ except ipaerror.IPAError, e:
+ turbogears.flash("User password change failed: " + str(e))
+ return dict(form=user_edit_form, user=kw,
+ tg_template='ipagui.templates.useredit')
+
+ turbogears.flash("%s updated!" % kw['uid'])
+ raise turbogears.redirect('/usershow', uid=kw['uid'])
+
@expose("ipagui.templates.userlist")
@identity.require(identity.not_anonymous())