[Freeipa-devel] [PATCH] edit protected fields
Kevin McCarthy
kmccarth at redhat.com
Mon Sep 10 17:04:12 UTC 2007
This patch adds a checkbox to the edit person page, to toggle editing
"protected" fields - currently uidnumber, gidnumber, and password.
-Kevin
-------------- next part --------------
# HG changeset patch
# User Kevin McCarthy <kmccarth at redhat.com>
# Date 1189443753 25200
# Node ID 17eb647a011bcf7d0c0a54dcf48f6d60ce1e932d
# Parent 530e225e14080cae2f36464a4cd2bf18b425b9be
Edit protected fields checkbox on user edit page.
(Password updating still doesn't work due to ACI though)
diff -r 530e225e1408 -r 17eb647a011b ipa-server/ipa-gui/ipagui/controllers.py
--- a/ipa-server/ipa-gui/ipagui/controllers.py Mon Sep 10 08:55:36 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/controllers.py Mon Sep 10 10:02:33 2007 -0700
@@ -145,6 +145,12 @@ class Root(controllers.RootController):
new_user.setValue('nsAccountLock', 'true')
else:
new_user.setValue('nsAccountLock', None)
+ if kw.get('userpassword'):
+ new_user.setValue('userpassword', kw.get('userpassword'))
+ if kw.get('uidnumber'):
+ new_user.setValue('uidnumber', kw.get('uidnumber'))
+ if kw.get('gidnumber'):
+ new_user.setValue('gidnumber', kw.get('gidnumber'))
#
# this is a hack until we decide on the policy for names/cn/sn/givenName
diff -r 530e225e1408 -r 17eb647a011b ipa-server/ipa-gui/ipagui/forms/user.py
--- a/ipa-server/ipa-gui/ipagui/forms/user.py Mon Sep 10 08:55:36 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/forms/user.py Mon Sep 10 10:02:33 2007 -0700
@@ -77,7 +77,7 @@ class UserEditForm(widgets.Form):
fields = [UserFields.givenname, UserFields.sn, UserFields.mail,
UserFields.uid_hidden, UserFields.user_orig,
- UserFields.uidnumber_hidden, UserFields.gidnumber_hidden,
+ UserFields.uidnumber, UserFields.gidnumber,
UserFields.krbPasswordExpiration_hidden,
]
diff -r 530e225e1408 -r 17eb647a011b ipa-server/ipa-gui/ipagui/static/css/style.css
--- a/ipa-server/ipa-gui/ipagui/static/css/style.css Mon Sep 10 08:55:36 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/static/css/style.css Mon Sep 10 10:02:33 2007 -0700
@@ -149,6 +149,10 @@ body {
}
.small {
+ font-size: small;
+}
+
+.xsmall {
font-size: x-small;
}
diff -r 530e225e1408 -r 17eb647a011b ipa-server/ipa-gui/ipagui/templates/master.kid
--- a/ipa-server/ipa-gui/ipagui/templates/master.kid Mon Sep 10 08:55:36 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/templates/master.kid Mon Sep 10 10:02:33 2007 -0700
@@ -28,7 +28,7 @@
<div id="logo">
<a href="${tg.url('/')}"><img
src="${tg.url('/static/images/logo.png')}"
- border="0"
+ border="0" alt="homepage"
/></a>
</div>
<div id="headerinfo">
diff -r 530e225e1408 -r 17eb647a011b ipa-server/ipa-gui/ipagui/templates/useredit.kid
--- a/ipa-server/ipa-gui/ipagui/templates/useredit.kid Mon Sep 10 08:55:36 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/templates/useredit.kid Mon Sep 10 10:02:33 2007 -0700
@@ -6,7 +6,16 @@
<title>Edit Person</title>
</head>
<body>
+
+ <div>
+ <div style="float:right">
+ <input type="checkbox"
+ onclick="toggleProtectedFields(this);">
+ <span class="small">edit protected fields</span>
+ </input>
+ </div>
<h2>Edit Person</h2>
+ </div>
<?python
from ipagui.helpers import userhelper
diff -r 530e225e1408 -r 17eb647a011b ipa-server/ipa-gui/ipagui/templates/usereditform.kid
--- a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid Mon Sep 10 08:55:36 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/templates/usereditform.kid Mon Sep 10 10:02:33 2007 -0700
@@ -1,6 +1,26 @@
<div xmlns:py="http://purl.org/kid/ns#"
class="simpleroster">
<form action="${action}" name="${name}" method="${method}" class="tableform">
+
+ <script type="text/javascript">
+ function toggleProtectedFields(checkbox) {
+ passwordField = document.getElementById('form_userpassword');
+ passwordConfirmField = document.getElementById('form_userpassword_confirm');
+ uidnumberField = document.getElementById('form_uidnumber');
+ gidnumberField = document.getElementById('form_gidnumber');
+ if (checkbox.checked) {
+ passwordField.disabled = false;
+ passwordConfirmField.disabled = false;
+ uidnumberField.disabled = false;
+ gidnumberField.disabled = false;
+ } else {
+ passwordField.disabled = true;
+ passwordConfirmField.disabled = true;
+ uidnumberField.disabled = true;
+ gidnumberField.disabled = true;
+ }
+ }
+ </script>
<div py:for="field in hidden_fields"
@@ -56,6 +76,10 @@
<span py:replace="user.userpassword.display(value_for(user.userpassword))" />
<span py:if="tg.errors.get('userpassword')" class="fielderror"
py:content="tg.errors.get('userpassword')" />
+
+ <script type="text/javascript">
+ document.getElementById('form_userpassword').disabled = true;
+ </script>
<!--
<span id="password_text">********</span>
@@ -71,7 +95,7 @@
});" />
<br />
<input type="checkbox"
- onclick="togglePassword(this);"><span class="small">edit</span></input>
+ onclick="togglePassword(this);"><span class="xsmall">edit</span></input>
<script type="text/javascript">
document.getElementById('form_userpassword').style.display='none';
@@ -104,6 +128,10 @@
value_for(user.userpassword_confirm))" />
<span py:if="tg.errors.get('userpassword_confirm')" class="fielderror"
py:content="tg.errors.get('userpassword_confirm')" />
+
+ <script type="text/javascript">
+ document.getElementById('form_userpassword_confirm').disabled = true;
+ </script>
</td>
</tr>
@@ -113,7 +141,14 @@
py:content="user.uidnumber.label" />:
</th>
<td>
- ${value_for(user.uidnumber)}
+ <span py:replace="user.uidnumber.display(
+ value_for(user.uidnumber))" />
+ <span py:if="tg.errors.get('uidnumber')" class="fielderror"
+ py:content="tg.errors.get('uidnumber')" />
+
+ <script type="text/javascript">
+ document.getElementById('form_uidnumber').disabled = true;
+ </script>
</td>
</tr>
@@ -123,7 +158,14 @@
py:content="user.gidnumber.label" />:
</th>
<td>
- ${value_for(user.gidnumber)}
+ <span py:replace="user.gidnumber.display(
+ value_for(user.gidnumber))" />
+ <span py:if="tg.errors.get('gidnumber')" class="fielderror"
+ py:content="tg.errors.get('gidnumber')" />
+
+ <script type="text/javascript">
+ document.getElementById('form_gidnumber').disabled = true;
+ </script>
</td>
</tr>
</table>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2228 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20070910/d5ad07b4/attachment.bin>
More information about the Freeipa-devel
mailing list