summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/subcontrollers
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2007-11-02 17:41:24 -0400
committerRob Crittenden <rcritten@redhat.com>2007-11-02 17:41:24 -0400
commit010fb65bfd766acf7b728abfba67bc55993b5ddc (patch)
treee744ebabda0b0c13241572abc0ae23143af09e8c /ipa-server/ipa-gui/ipagui/subcontrollers
parent9d2400352858424aabf647b25b88694b33cbd76d (diff)
downloadfreeipa.git-010fb65bfd766acf7b728abfba67bc55993b5ddc.tar.gz
freeipa.git-010fb65bfd766acf7b728abfba67bc55993b5ddc.tar.xz
freeipa.git-010fb65bfd766acf7b728abfba67bc55993b5ddc.zip
define Self-Service as editting your own record.
This has the side-effect of removing the realm from Loggin in as. This can be changed by using user_name instead of display_name in master.kid.
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/subcontrollers')
-rw-r--r--ipa-server/ipa-gui/ipagui/subcontrollers/user.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py
index 1ff86055..d328052b 100644
--- a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py
+++ b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py
@@ -241,7 +241,7 @@ class UserController(IPAController):
@expose("ipagui.templates.useredit")
@identity.require(identity.not_anonymous())
- def edit(self, uid, tg_errors=None):
+ def edit(self, uid=None, principal=None, tg_errors=None):
"""Displays the edit user form"""
if tg_errors:
turbogears.flash("There were validation errors.<br/>" +
@@ -250,7 +250,14 @@ class UserController(IPAController):
client = self.get_ipaclient()
try:
- user = client.get_user_by_uid(uid, user_fields)
+ if uid is not None:
+ user = client.get_user_by_uid(uid, user_fields)
+ elif principal is not None:
+ principal = principal + "@" + ipa.config.config.default_realm
+ user = client.get_user_by_principal(principal, user_fields)
+ else:
+ turbogears.flash("User edit failed: No uid or principal provided")
+ raise turbogears.redirect('/')
user_dict = user.toDict()
# Edit shouldn't fill in the password field.
if user_dict.has_key('userpassword'):
@@ -291,6 +298,8 @@ class UserController(IPAController):
return dict(form=user_edit_form, user=user_dict,
user_groups=user_groups_dicts)
except ipaerror.IPAError, e:
+ if uid is None:
+ uid = principal
turbogears.flash("User edit failed: " + str(e))
raise turbogears.redirect('/user/show', uid=uid)