summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/templates
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2009-01-29 16:29:11 -0500
committerRob Crittenden <rcritten@redhat.com>2009-02-03 15:28:31 -0500
commite0d428f97aad1f9e9c3faedeaddbcade22927d37 (patch)
tree3a21754e5f4c8283530e2619c32ace2ded324564 /ipa-server/ipa-gui/ipagui/templates
parente30cd6ba42c256d2016db45146d616f329455e86 (diff)
downloadfreeipa-e0d428f97aad1f9e9c3faedeaddbcade22927d37.tar.gz
freeipa-e0d428f97aad1f9e9c3faedeaddbcade22927d37.tar.xz
freeipa-e0d428f97aad1f9e9c3faedeaddbcade22927d37.zip
Mass file removal for IPAv2.
deleted: ipa-admintools/Makefile deleted: ipa-admintools/README deleted: ipa-admintools/ipa-adddelegation deleted: ipa-admintools/ipa-addgroup deleted: ipa-admintools/ipa-addservice deleted: ipa-admintools/ipa-adduser deleted: ipa-admintools/ipa-admintools.spec.in deleted: ipa-admintools/ipa-change-master-key deleted: ipa-admintools/ipa-defaultoptions deleted: ipa-admintools/ipa-deldelegation deleted: ipa-admintools/ipa-delgroup deleted: ipa-admintools/ipa-delservice deleted: ipa-admintools/ipa-deluser deleted: ipa-admintools/ipa-findgroup deleted: ipa-admintools/ipa-findservice deleted: ipa-admintools/ipa-finduser deleted: ipa-admintools/ipa-listdelegation deleted: ipa-admintools/ipa-lockuser deleted: ipa-admintools/ipa-moddelegation deleted: ipa-admintools/ipa-modgroup deleted: ipa-admintools/ipa-moduser deleted: ipa-admintools/ipa-passwd deleted: ipa-admintools/ipa-pwpolicy deleted: ipa-admintools/man/Makefile deleted: ipa-admintools/man/ipa-adddelegation.1 deleted: ipa-admintools/man/ipa-addgroup.1 deleted: ipa-admintools/man/ipa-addservice.1 deleted: ipa-admintools/man/ipa-adduser.1 deleted: ipa-admintools/man/ipa-defaultoptions.1 deleted: ipa-admintools/man/ipa-deldelegation.1 deleted: ipa-admintools/man/ipa-delgroup.1 deleted: ipa-admintools/man/ipa-delservice.1 deleted: ipa-admintools/man/ipa-deluser.1 deleted: ipa-admintools/man/ipa-findgroup.1 deleted: ipa-admintools/man/ipa-findservice.1 deleted: ipa-admintools/man/ipa-finduser.1 deleted: ipa-admintools/man/ipa-listdelegation.1 deleted: ipa-admintools/man/ipa-lockuser.1 deleted: ipa-admintools/man/ipa-moddelegation.1 deleted: ipa-admintools/man/ipa-modgroup.1 deleted: ipa-admintools/man/ipa-moduser.1 deleted: ipa-admintools/man/ipa-passwd.1 deleted: ipa-admintools/man/ipa-pwpolicy.1 deleted: ipa-server/AUTHORS deleted: ipa-server/Makefile.am deleted: ipa-server/NEWS deleted: ipa-server/README deleted: ipa-server/configure.ac deleted: ipa-server/ipa-gui/Makefile.am deleted: ipa-server/ipa-gui/README.i18n deleted: ipa-server/ipa-gui/README.multivalue deleted: ipa-server/ipa-gui/README.txt deleted: ipa-server/ipa-gui/dev.cfg deleted: ipa-server/ipa-gui/i18n.patch deleted: ipa-server/ipa-gui/ipa_gui.egg-info/Makefile.am deleted: ipa-server/ipa-gui/ipa_gui.egg-info/PKG-INFO deleted: ipa-server/ipa-gui/ipa_gui.egg-info/SOURCES.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/dependency_links.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/entry_points.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/not-zip-safe deleted: ipa-server/ipa-gui/ipa_gui.egg-info/paster_plugins.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/requires.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/sqlobject.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/top_level.txt deleted: ipa-server/ipa-gui/ipa_webgui deleted: ipa-server/ipa-gui/ipa_webgui.cfg deleted: ipa-server/ipa-gui/ipa_webgui.init deleted: ipa-server/ipa-gui/ipagui/Makefile.am deleted: ipa-server/ipa-gui/ipagui/__init__.py deleted: ipa-server/ipa-gui/ipagui/config/Makefile.am deleted: ipa-server/ipa-gui/ipagui/config/__init__.py deleted: ipa-server/ipa-gui/ipagui/config/app.cfg deleted: ipa-server/ipa-gui/ipagui/config/log.cfg deleted: ipa-server/ipa-gui/ipagui/controllers.py deleted: ipa-server/ipa-gui/ipagui/forms/Makefile.am deleted: ipa-server/ipa-gui/ipagui/forms/__init__.py deleted: ipa-server/ipa-gui/ipagui/forms/delegate.py deleted: ipa-server/ipa-gui/ipagui/forms/group.py deleted: ipa-server/ipa-gui/ipagui/forms/ipapolicy.py deleted: ipa-server/ipa-gui/ipagui/forms/principal.py deleted: ipa-server/ipa-gui/ipagui/forms/user.py deleted: ipa-server/ipa-gui/ipagui/helpers/Makefile.am deleted: ipa-server/ipa-gui/ipagui/helpers/__init__.py deleted: ipa-server/ipa-gui/ipagui/helpers/ipahelper.py deleted: ipa-server/ipa-gui/ipagui/helpers/userhelper.py deleted: ipa-server/ipa-gui/ipagui/helpers/validators.py deleted: ipa-server/ipa-gui/ipagui/json.py deleted: ipa-server/ipa-gui/ipagui/model.py deleted: ipa-server/ipa-gui/ipagui/proxyprovider.py deleted: ipa-server/ipa-gui/ipagui/proxyvisit.py deleted: ipa-server/ipa-gui/ipagui/release.py deleted: ipa-server/ipa-gui/ipagui/static/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/css/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/css/style_freeipa.css deleted: ipa-server/ipa-gui/ipagui/static/css/style_platform-objects.css deleted: ipa-server/ipa-gui/ipagui/static/css/style_platform.css deleted: ipa-server/ipa-gui/ipagui/static/images/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/branding/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/branding/logo.png deleted: ipa-server/ipa-gui/ipagui/static/images/down.gif deleted: ipa-server/ipa-gui/ipagui/static/images/favicon.ico deleted: ipa-server/ipa-gui/ipagui/static/images/header_inner.png deleted: ipa-server/ipa-gui/ipagui/static/images/info.png deleted: ipa-server/ipa-gui/ipagui/static/images/logo.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-accesscontrol.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-channel.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-channels.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-content.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-media.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-overview.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-policy.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-system.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-user.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-usergroup.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-virtualsystem.png deleted: ipa-server/ipa-gui/ipagui/static/images/ok.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-content.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active_fullsize.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar_fullsize.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-sidebar.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background.png deleted: ipa-server/ipa-gui/ipagui/static/images/tg_under_the_hood.png deleted: ipa-server/ipa-gui/ipagui/static/images/under_the_hood_blue.png deleted: ipa-server/ipa-gui/ipagui/static/images/up.gif deleted: ipa-server/ipa-gui/ipagui/static/javascript/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/javascript/dynamicedit.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/dynamicselect.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/effects.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/ipautil.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/prototype.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/scriptaculous.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/tablekit.js deleted: ipa-server/ipa-gui/ipagui/subcontrollers/Makefile.am deleted: ipa-server/ipa-gui/ipagui/subcontrollers/__init__.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/group.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/ipacontroller.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/policy.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/principal.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/user.py deleted: ipa-server/ipa-gui/ipagui/templates/Makefile.am deleted: ipa-server/ipa-gui/ipagui/templates/__init__.py deleted: ipa-server/ipa-gui/ipagui/templates/delegateedit.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegateform.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegatelist.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegatenew.kid deleted: ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupedit.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupeditform.kid deleted: ipa-server/ipa-gui/ipagui/templates/grouplayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/grouplist.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupnew.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupnewform.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupshow.kid deleted: ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid deleted: ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid deleted: ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid deleted: ipa-server/ipa-gui/ipagui/templates/loginfailed.kid deleted: ipa-server/ipa-gui/ipagui/templates/master.kid deleted: ipa-server/ipa-gui/ipagui/templates/not_found.kid deleted: ipa-server/ipa-gui/ipagui/templates/policyindex.kid deleted: ipa-server/ipa-gui/ipagui/templates/policylayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/principallayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/principallist.kid deleted: ipa-server/ipa-gui/ipagui/templates/principalnew.kid deleted: ipa-server/ipa-gui/ipagui/templates/principalnewform.kid deleted: ipa-server/ipa-gui/ipagui/templates/principalshow.kid deleted: ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid deleted: ipa-server/ipa-gui/ipagui/templates/useredit.kid deleted: ipa-server/ipa-gui/ipagui/templates/usereditform.kid deleted: ipa-server/ipa-gui/ipagui/templates/userlayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/userlist.kid deleted: ipa-server/ipa-gui/ipagui/templates/usernew.kid deleted: ipa-server/ipa-gui/ipagui/templates/usernewform.kid deleted: ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid deleted: ipa-server/ipa-gui/ipagui/templates/usershow.kid deleted: ipa-server/ipa-gui/ipagui/templates/welcome.kid deleted: ipa-server/ipa-gui/ipagui/tests/Makefile.am deleted: ipa-server/ipa-gui/ipagui/tests/__init__.py deleted: ipa-server/ipa-gui/ipagui/tests/test_controllers.py deleted: ipa-server/ipa-gui/ipagui/tests/test_model.py deleted: ipa-server/ipa-gui/locales/ja/LC_MESSAGES/messages.po deleted: ipa-server/ipa-gui/locales/messages.pot deleted: ipa-server/ipa-gui/sample-prod.cfg deleted: ipa-server/ipa-gui/setup.py deleted: ipa-server/ipa-gui/start-ipagui.py deleted: ipa-server/ipa-gui/test.cfg deleted: ipa-server/ipa-server.spec.in deleted: ipa-server/xmlrpc-server/Makefile.am deleted: ipa-server/xmlrpc-server/README deleted: ipa-server/xmlrpc-server/attrs.py deleted: ipa-server/xmlrpc-server/funcs.py deleted: ipa-server/xmlrpc-server/ipaxmlrpc.py deleted: ipa-server/xmlrpc-server/test/Makefile.am deleted: ipa-server/xmlrpc-server/test/README deleted: ipa-server/xmlrpc-server/test/test.py deleted: ipa-server/xmlrpc-server/test/test_methods.py deleted: ipa-server/xmlrpc-server/test/test_mod_python.py
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/templates')
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/Makefile.am55
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/__init__.py0
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/delegateedit.kid33
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/delegateform.kid213
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid48
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid34
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/delegatelist.kid93
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/delegatenew.kid31
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid97
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/groupedit.kid36
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/groupeditform.kid289
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/grouplayout.kid40
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/grouplist.kid93
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/groupnew.kid32
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/groupnewform.kid149
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/groupshow.kid131
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid32
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid280
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid188
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/loginfailed.kid41
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/master.kid121
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/not_found.kid37
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/policyindex.kid48
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/policylayout.kid34
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/principallayout.kid36
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/principallist.kid82
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/principalnew.kid30
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/principalnewform.kid119
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/principalshow.kid70
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid48
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/useredit.kid57
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/usereditform.kid949
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/userlayout.kid41
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/userlist.kid118
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/usernew.kid30
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/usernewform.kid842
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid53
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/usershow.kid399
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/welcome.kid53
39 files changed, 0 insertions, 5082 deletions
diff --git a/ipa-server/ipa-gui/ipagui/templates/Makefile.am b/ipa-server/ipa-gui/ipagui/templates/Makefile.am
deleted file mode 100644
index ddc8666c..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/Makefile.am
+++ /dev/null
@@ -1,55 +0,0 @@
-NULL =
-
-appdir = $(IPA_DATA_DIR)/ipagui/templates
-app_PYTHON = \
- __init__.py \
- $(NULL)
-
-app_DATA = \
- delegateedit.kid \
- delegateform.kid \
- delegategroupsearch.kid \
- delegatelayout.kid \
- delegatelist.kid \
- delegatenew.kid \
- dynamiceditsearch.kid \
- groupeditform.kid \
- groupedit.kid \
- grouplayout.kid \
- grouplist.kid \
- groupnewform.kid \
- groupnew.kid \
- groupshow.kid \
- ipapolicyeditform.kid \
- ipapolicyedit.kid \
- ipapolicyshow.kid \
- loginfailed.kid \
- master.kid \
- not_found.kid \
- policyindex.kid \
- policylayout.kid \
- principallayout.kid \
- principallist.kid \
- principalshow.kid \
- principalnewform.kid \
- principalnew.kid \
- usereditform.kid \
- useredit.kid \
- userlayout.kid \
- userlist.kid \
- usernewform.kid \
- usernew.kid \
- userselectsearch.kid \
- usershow.kid \
- welcome.kid \
- unhandled_exception.kid \
- $(NULL)
-
-EXTRA_DIST = \
- $(app_DATA) \
- $(NULL)
-
-MAINTAINERCLEANFILES = \
- *~ \
- *.pyc \
- Makefile.in
diff --git a/ipa-server/ipa-gui/ipagui/templates/__init__.py b/ipa-server/ipa-gui/ipagui/templates/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/__init__.py
+++ /dev/null
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid b/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid
deleted file mode 100644
index d9f6c3c4..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'delegatelayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Edit Delegation</title>
-</head>
-<body>
-
- <h1 class="accesscontrol">Edit Delegation</h1>
-
- ${form.display(action=tg.url("/delegate/update"), value=delegate,
- actionname='Update')}
-
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid b/ipa-server/ipa-gui/ipagui/templates/delegateform.kid
deleted file mode 100644
index 71d08a4f..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid
+++ /dev/null
@@ -1,213 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#"
- class="simpleroster">
-
- <?python searchurl = tg.url('/delegate/group_search') ?>
-
- <script type="text/javascript">
- function lostFocus(which_group) {
- /* The user has left the field, save what they put in there in case
- * they don't do a Find. */
- group_cn_field = $('form_' + which_group + '_group_cn');
- group_criteria_field = $(which_group + '_criteria')
- group_cn_field.value = group_criteria_field.value
- }
-
- function enterDoSearch(e, which_group) {
- var keyPressed;
- if (window.event) {
- keyPressed = window.event.keyCode;
- } else {
- keyPressed = e.which;
- }
-
- if (keyPressed == 13) {
- return doSearch(which_group);
- } else {
- return true;
- }
- }
-
- function doSearch(which_group) {
- $(which_group + '_searchresults').update("Searching...");
- new Ajax.Updater(which_group + '_searchresults',
- '${searchurl}',
- { asynchronous:true,
- parameters: { criteria: $(which_group + '_criteria').value,
- which_group: which_group},
- evalScripts: true });
- return false;
- }
-
- function selectGroup(which_group, group_dn, group_cn) {
- group_dn_field = $('form_' + which_group + '_group_dn');
- group_cn_field = $('form_' + which_group + '_group_cn');
- group_cn_span = $(which_group + '_group_cn');
-
- group_dn_field.value = group_dn;
- group_cn_field.value = group_cn;
- group_cn_span.update(group_cn);
-
- new Effect.Fade($(which_group + '_searcharea'), {duration: 0.25});
- new Effect.Appear($(which_group + '_change_link'), {duration: 0.25});
- }
-
- function confirmDelete() {
- if (confirm("Are you sure you want to delete this delegation?")) {
- $('deleteform').submit();
- }
- return false;
- }
- </script>
-
- <form style="display:none" id='deleteform'
- method="post" action="${tg.url('/delegate/delete')}">
- <input type="hidden" name="acistr" value="${value.get('orig_acistr')}" />
- </form>
-
- <form action="${action}" name="${name}" method="${method}" class="tableform">
-
- <input type="submit" class="submitbutton" name="submit"
- value="${actionname} Delegation"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel ${actionname}"/>
- <span py:if='actionname == "Update"'>
- <input type="button" class="deletebutton"
- value="Delete Delegation"
- onclick="return confirmDelete();"
- />
- </span>
-
- <div py:for="field in hidden_fields"
- py:replace="field.display(value_for(field), **params_for(field))"
- />
-
-<h2>Delegation Details</h2>
-
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${delegate_fields.name.field_id}"
- py:content="delegate_fields.name.label" />:
- </th>
- <td>
- <span py:replace="delegate_fields.name.display(value_for(delegate_fields.name))" />
- <span py:if="tg.errors.get('name')" class="fielderror"
- py:content="tg.errors.get('name')" />
- </td>
- </tr>
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${delegate_fields.source_group_cn.field_id}"
- py:content="delegate_fields.source_group_cn.label" />:
- </th>
- <td>
- <div>
- <span id='source_group_cn'>${value_for(delegate_fields.source_group_cn)}</span>
- <a href="#" id='source_change_link'
- onclick="new Effect.Appear($('source_searcharea'), {duration: 0.25});
- new Effect.Fade(this, {duration: 0.25});
- return false;">change</a>
- <span py:if="tg.errors.get('source_group_dn')" class="fielderror"
- py:content="tg.errors.get('source_group_dn')" />
- </div>
- <div id="source_searcharea" style="display:none">
- <input class="requiredfield" id="source_criteria" type="text"
- onkeypress="return enterDoSearch(event, 'source');" onblur="return lostFocus('source');"/>
- <input class="searchbutton" type="button" value="Find"
- onclick="return doSearch('source');"
- />
- <div id="source_searchresults">
- </div>
- </div>
- </td>
- </tr>
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${delegate_fields.attrs.field_id}"
- py:content="delegate_fields.attrs.label" />:
- </th>
- <td valign="top">
- <span py:if="tg.errors.get('attrs')" class="fielderror"
- py:content="tg.errors.get('attrs')" />
- <span py:replace="delegate_fields.attrs.display(value_for(delegate_fields.attrs))" />
- </td>
- </tr>
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${delegate_fields.dest_group_cn.field_id}"
- py:content="delegate_fields.dest_group_cn.label" />:
- </th>
- <td>
- <div>
- <span id='dest_group_cn'>${value_for(delegate_fields.dest_group_cn)}</span>
- <a href="#" id='dest_change_link'
- onclick="new Effect.Appear($('dest_searcharea'), {duration: 0.25});
- new Effect.Fade(this, {duration: 0.25});
- return false;">change</a>
- <span py:if="tg.errors.get('dest_group_dn')" class="fielderror"
- py:content="tg.errors.get('dest_group_dn')" />
- </div>
- <div id="dest_searcharea" style="display:none">
- <div>
- <input class="requiredfield" id="dest_criteria" type="text"
- onkeypress="return enterDoSearch(event, 'dest');" onblur="return lostFocus('dest');"/>
- <input class="searchbutton" type="button" value="Find"
- onclick="return doSearch('dest');"
- />
- </div>
- <div id="dest_searchresults">
- </div>
- </div>
- </td>
- </tr>
- </table>
-
-<hr />
-
- <input type="submit" class="submitbutton" name="submit"
- value="${actionname} Delegation"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel ${actionname}"/>
- <span py:if='actionname == "Update"'>
- <input type="button" class="deletebutton"
- value="Delete Delegation"
- onclick="return confirmDelete();"
- />
- </span>
-
- <script py:if="not value.get('source_group_dn')"
- type="text/javascript">
- new Effect.Appear($('source_searcharea'), {duration: 0.25});
- new Effect.Fade($('source_change_link'), {duration: 0.25});
- </script>
- <script py:if="not value.get('dest_group_dn')"
- type="text/javascript">
- new Effect.Appear($('dest_searcharea'), {duration: 0.25});
- new Effect.Fade($('dest_change_link'), {duration: 0.25});
- </script>
-
- </form>
-
-
- <script type="text/javascript">
- document.getElementById("form_name").focus();
- </script>
-
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid b/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid
deleted file mode 100644
index f8f8b5c6..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#">
-
-<?python
-from ipagui.helpers import ipahelper
-?>
- <div py:if='(groups != None) and (len(groups) > 0)'>
- <div id="search-results-count">
- ${len(groups)} results returned:
- <span py:if="counter &lt; 0">
- (truncated)
- </span>
- </div>
-
- <div py:for="group in groups">
- <?python
- group_dn_esc = ipahelper.javascript_string_escape(group.dn)
- group_cn_esc = ipahelper.javascript_string_escape(group.cn)
- which_group_esc = ipahelper.javascript_string_escape(which_group)
- ?>
-
- ${group.cn}
- <a href=""
- onclick="selectGroup('${which_group_esc}', '${group_dn_esc}', '${group_cn_esc}');
- return false;"
- >select</a>
- </div>
- </div>
- <div py:if='(groups != None) and (len(groups) == 0)'>
- No results found for "${criteria}"
- </div>
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid b/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid
deleted file mode 100644
index 7ece6cf9..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-</head>
-
-<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
- <div id="main_content">
-<div id="details">
- <div id="alertbox" py:if="value_of('tg_flash', None)"><p py:content="XML(tg_flash)"></p></div>
-
- <div py:replace="[item.text]+item[:]"></div>
- </div>
-</div>
-</body>
-
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid b/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid
deleted file mode 100644
index 81ecfeb0..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'delegatelayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Delegations</title>
-</head>
-<body>
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
-
- <script type="text/javascript">
- function editDelegation(acistr) {
- $('edit_acistr').value = acistr;
- $('editform').submit();
- return false;
- }
- </script>
-
- <form style="display:none" id='editform'
- method="post" action="${tg.url('/delegate/edit')}">
- <input type="hidden" id="edit_acistr" name="acistr" value="" />
- </form>
- <h1 class="accesscontrol">Delegations</h1>
-
- <table id="resultstable" class="details sortable resizable">
- <thead>
- <tr>
- <th>${fields.name.label}</th>
- <th>${fields.source_group_cn.label}</th>
- <th>${fields.attrs.label}</th>
- <th>${fields.dest_group_cn.label}</th>
- </tr>
- </thead>
- <tbody>
- <tr py:for='aci in aci_list'>
- <?python
- source_cn = group_dn_to_cn.get(aci.source_group)
- dest_cn = group_dn_to_cn.get(aci.dest_group)
- acistr = aci.orig_acistr
- acistr_esc = ipahelper.javascript_string_escape(acistr)
- ?>
- <td>
- <a href="#" onclick="return editDelegation('${acistr_esc}');"
- >${aci.name}</a>
- </td>
- <td>
- <a href="${tg.url('/group/show', cn=source_cn)}"
- >${source_cn}</a>
- </td>
- <td>
- ${", ".join(aci.attrs)}
- </td>
- <td>
- <a href="${tg.url('/group/show', cn=dest_cn)}"
- >${dest_cn}</a>
- </td>
- </tr>
- </tbody>
- </table>
-
- <table border="0">
- <tbody>
- <tr>
- <td>
- <a href="${tg.url('/delegate/new')}">add new delegation</a><br />
- </td>
- </tr>
- </tbody>
- </table>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid b/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid
deleted file mode 100644
index 12ba9e36..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'delegatelayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Add Delegation</title>
-</head>
-<body>
- <h1 class="accesscontrol">Add Delegation</h1>
-
- ${form.display(action=tg.url("/delegate/create"), value=delegate,
- actionname='Add')}
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid b/ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid
deleted file mode 100644
index 2407f665..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#">
-
-<?python
-from ipagui.helpers import ipahelper
-#
-# This file is used to render the results from an AJAX search onto a page.
-# It has many expectations of the page being rendered into:
-# - Source page must have included dynamicedit.js and followed all of its
-# requirements
-#
-?>
- <div id="search-results-count">
- </div>
- <?python
- criteria_esc = ipahelper.javascript_string_escape(criteria)
- ?>
- <script type="text/javascript">
- search_string = "${criteria_esc}";
- results_counter = 0;
- </script>
- <?python search_div_counter = 1 ?>
- <div py:for="entities in (users, groups)">
- <div py:if='(entities != None) and (len(entities) > 0)'>
- <div py:for="entity in entities" id="search-${search_div_counter}">
- <?python
- ent_dn_esc = ipahelper.javascript_string_escape(entity.dn)
- ent_uid = entity.uid
- if ent_uid:
- ent_name = "%s %s" % (entity.getValue('givenName', ''),
- entity.getValue('sn', ''))
- ent_descr = "(%s)" % entity.uid
- ent_type = "user"
- else:
- ent_name = entity.cn
- ent_descr = "[group]"
- ent_type = "group"
- ent_name_esc = ipahelper.javascript_string_escape(ent_name)
- ent_descr_esc = ipahelper.javascript_string_escape(ent_descr)
- ent_type_esc = ipahelper.javascript_string_escape(ent_type)
- ?>
- <span id="search-info-${search_div_counter}"></span>
- <script type="text/javascript">
- if ((added_hash["${ent_dn_esc}"] == 1) ||
- (member_hash["${ent_dn_esc}"] == 1)) {
- $("search-${search_div_counter}").style.display = 'none';
- } else {
- results_counter = results_counter + 1;
- }
-
- renderMemberInfo($('search-info-${search_div_counter}'),
- new MemberDisplayInfo('${ent_name_esc}',
- '${ent_descr_esc}',
- '${ent_type_esc}'));
- </script>
- <a href=""
- onclick="addmemberHandler(this, '${ent_dn_esc}',
- new MemberDisplayInfo('${ent_name_esc}',
- '${ent_descr_esc}',
- '${ent_type_esc}'));
- return false;"
- >add</a>
- <?python
- search_div_counter = search_div_counter + 1
- ?>
- </div>
- </div>
- </div>
- <script type="text/javascript">
- if (results_counter == 0) {
- var message = "No results found for '" + search_string + "'";
- } else {
- var message = results_counter + " results found:";
- }
- $('search-results-count').appendChild(document.createTextNode(message));
- </script>
- <script py:if="counter &lt; 0">
- $('search-results-count').appendChild(document.createTextNode(
- " (truncated)"));
- </script>
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupedit.kid b/ipa-server/ipa-gui/ipagui/templates/groupedit.kid
deleted file mode 100644
index 9614770f..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/groupedit.kid
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'grouplayout.kid'">
-<head>
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
- <title>Edit Group</title>
-</head>
-<body>
- <div id="details">
- <h1 class="usergroup">Edit Group</h1>
-<input type="checkbox" id="toggleprotected_checkbox"
- onclick="toggleProtectedFields(this);">
- <span class="small">edit protected fields</span>
- </input>
-
- ${form.display(action=tg.url('/group/update'), value=group, members=members)}
-</div>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
deleted file mode 100644
index 78f76b0a..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
+++ /dev/null
@@ -1,289 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#"
- class="simpleroster">
-
- <form style="display:none" id='deleteform'
- method="post" action="${tg.url('/group/delete')}">
- <input type="hidden" name="dn" value="${value.get('dn')}" />
- </form>
-
- <form action="${action}" name="${name}" method="${method}" class="tableform"
- onsubmit="preSubmit()" >
-
- <input type="submit" class="submitbutton" name="submit"
- value="Update Group"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel Edit" />
- <input type="button" class="deletebutton"
- value="Delete Group"
- onclick="return confirmDelete();"
- />
-
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicedit.js')}"></script>
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script>
-
- <?python searchurl = tg.url('/group/edit_search') ?>
-
- <script type="text/javascript">
- function toggleProtectedFields(checkbox) {
- var gidnumberField = $('form_gidnumber');
- var cnField = $('form_cn');
- if (checkbox.checked) {
- gidnumberField.disabled = false;
- cnField.disabled = false;
- $('form_editprotected').value = 'true';
- } else {
- gidnumberField.disabled = true;
- cnField.disabled = true;
- $('form_editprotected').value = '';
- }
- }
-
- function doSearch() {
- $('searchresults').update("Searching...");
- new Ajax.Updater('searchresults',
- '${searchurl}',
- { asynchronous:true,
- parameters: { criteria: $('criteria').value },
- evalScripts: true });
- return false;
- }
-
- function confirmDelete() {
- if (confirm("Are you sure you want to delete this group?")) {
- $('deleteform').submit();
- }
- return false;
- }
- </script>
-
- <div py:for="field in hidden_fields"
- py:replace="field.display(value_for(field), **params_for(field))"
- />
-
- <h2 class="formsection">Group Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${group_fields.cn.field_id}"
- py:content="group_fields.cn.label" />:
- </th>
- <td>
- <span py:replace="group_fields.cn.display(value_for(group_fields.cn))" />
- <span py:if="tg.errors.get('cn')" class="fielderror"
- py:content="tg.errors.get('cn')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${group_fields.description.field_id}"
- py:content="group_fields.description.label" />:
- </th>
- <td>
- <span py:replace="group_fields.description.display(value_for(group_fields.description))" />
- <span py:if="tg.errors.get('description')" class="fielderror"
- py:content="tg.errors.get('description')" />
-
- <script type="text/javascript">
- document.getElementById('form_cn').disabled = true;
- </script>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${group_fields.gidnumber.field_id}"
- py:content="group_fields.gidnumber.label" />:
- </th>
- <td>
- <span py:replace="group_fields.gidnumber.display(value_for(group_fields.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>
- <tr>
- <th>
- <label class="fieldlabel" for="${group_fields.nsAccountLock.field_id}" py:content="group_fields.nsAccountLock.label" />:
- </th>
- <td>
- <span py:replace="group_fields.nsAccountLock.display(value_for(group_fields.nsAccountLock))" />
- <span py:if="tg.errors.get('nsAccountLock')" class="fielderror"
- py:content="tg.errors.get('nsAccountLock')" />
- </td>
- </tr>
- </table>
-
- <div>
- <h2 class="formsection">Group Members</h2>
-
- <div class="floatlist">
- <div class="floatheader">To Remove:</div>
- <div id="delmembers">
- </div>
- </div>
-
- <div>
- <?python div_counter = 1 ?>
- <div py:for="member in members" id="member-${div_counter}">
- <?python
- member_dn = member.get('dn')
- member_dn_esc = ipahelper.javascript_string_escape(member_dn)
-
- member_uid = member.get('uid')
- member_inherited = member.get('inherited')
- if member_uid:
- member_name = "%s %s" % (member.get('givenName', ''),
- member.get('sn', ''))
- member_descr = "(%s)" % member.get('uid')
- if member_inherited:
- member_type = "iuser"
- else:
- member_type = "user"
- else:
- member_name = member.get('cn')
- member_descr = "[group]"
- if member_inherited:
- member_type = "igroup"
- else:
- member_type = "group"
- member_name_esc = ipahelper.javascript_string_escape(member_name)
- member_descr_esc = ipahelper.javascript_string_escape(member_descr)
- member_type_esc = ipahelper.javascript_string_escape(member_type)
- ?>
- <span id="member-info-${div_counter}"></span>
- <script type="text/javascript">
- renderMemberInfo($('member-info-${div_counter}'),
- new MemberDisplayInfo('${member_name_esc}',
- '${member_descr_esc}',
- '${member_type_esc}'));
- </script>
- <a py:if="member_inherited != True" href="#"
- onclick="removememberHandler(this, '${member_dn_esc}',
- new MemberDisplayInfo('${member_name_esc}',
- '${member_descr_esc}',
- '${member_type_esc}'));
- return false;"
- >remove</a>
- <script type="text/javascript">
- dn_to_member_div_id['${member_dn_esc}'] = "member-${div_counter}";
- member_hash["${member_dn_esc}"] = 1;
- </script>
- <?python
- div_counter = div_counter + 1
- ?>
- </div>
- &nbsp; <!-- a space here to prevent an empty div -->
- </div>
-
- </div>
-
- <div style="clear:both">
- <h2 class="formsection">Add Members</h2>
-
- <div class="floatlist">
- <div class="floatheader">To Add:</div>
- <div id="newmembers">
- </div>
- </div>
-
- <div>
- <div id="search">
- <input id="criteria" type="text" name="criteria"
- onkeypress="return enterDoSearch(event);" />
- <input class="searchbutton" type="button" value="Find"
- onclick="return doSearch();"
- />
- </div>
- <div id="searchresults">
- </div>
- </div>
- </div>
-<hr />
- <input type="submit" class="submitbutton" name="submit"
- value="Update Group"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel Edit" />
- <input type="button" class="deletebutton"
- value="Delete Group"
- onclick="return confirmDelete();"
- />
- </form>
-
- <script type="text/javascript">
- /*
- * This section restores the contents of the add and remove lists
- * dynamically if we have to refresh the page
- */
- if ($('form_dn_to_info_json').value != "") {
- dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON());
- }
-
- if ($('form_editprotected').value != "") {
- $('toggleprotected_checkbox').checked = true;
- toggleProtectedFields($('toggleprotected_checkbox'));
- }
- </script>
-
- <?python
- dnadds = value.get('dnadd', [])
- if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)):
- dnadds = [dnadds]
-
- dndels = value.get('dndel', [])
- if not(isinstance(dndels,list) or isinstance(dndels,tuple)):
- dndels = [dndels]
- ?>
-
- <script py:for="dnadd in dnadds">
- <?python
- dnadd_esc = ipahelper.javascript_string_escape(dnadd)
- ?>
- var dn = "${dnadd_esc}";
- var info = dn_to_info_hash[dn];
- var newdiv = addmember(dn, info);
- if (newdiv != null) {
- newdiv.style.display = 'block';
- }
- </script>
-
- <script py:for="dndel in dndels">
- <?python
- dndel_esc = ipahelper.javascript_string_escape(dndel)
- ?>
- var dn = "${dndel_esc}";
- var info = dn_to_info_hash[dn];
- var newdiv = removemember(dn, info);
- newdiv.style.display = 'block';
- orig_div_id = dn_to_member_div_id[dn]
- $(orig_div_id).style.display = 'none';
- </script>
-
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid b/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid
deleted file mode 100644
index fe013ca0..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-</head>
-
-<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
- <div id="main_content">
- <div id="alertbox" py:if="value_of('tg_flash', None)">
- <p py:content="XML(tg_flash)"></p></div>
-
- <div py:replace="[item.text]+item[:]"></div>
- </div>
-
-<!-- <div id="sidebar">
- <h2>Tools</h2>
- <a href="${tg.url('/group/index')}">Add Group</a><br/>
- <a href="${tg.url('/group/index')}">Find Group</a><br/>
- <a href="${tg.url('/group/index')}">List Groups</a><br/>
- </div> -->
-</body>
-
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid b/ipa-server/ipa-gui/ipagui/templates/grouplist.kid
deleted file mode 100644
index 00fd03aa..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'grouplayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Find Groups</title>
-</head>
-<body>
-<div id="details">
- <h1 class="usergroup">Find Groups</h1>
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
- <div id="search">
- <form action="${tg.url('/group/list')}" method="get">
- <input id="criteria" type="text" name="criteria" value="${criteria}" />
- <input type="submit" value="Find Groups"/>
- </form>
- <script type="text/javascript">
- document.getElementById("criteria").focus();
- </script>
- </div>
- <div py:if='(groups != None) and (len(groups) > 0)'>
- <h2>${len(groups)} results returned:</h2>
- <table id="resultstable" class="details sortable resizable" cellspacing="0">
- <thead>
- <tr>
- <th>
- ${fields.cn.label}
- </th>
- <th>
- ${fields.description.label}
- </th>
- </tr>
- </thead>
- <tbody>
- <tr py:for="group in groups" py:if="group.nsAccountLock != 'true'">
- <td>
- <a href="${tg.url('/group/show',cn=group.cn)}">${group.cn}</a>
- </td>
- <td>
- ${group.description}
- </td>
- </tr>
- <tr id="inactive" py:for="group in groups" py:if="group.nsAccountLock == 'true'">
- <td>
- <a href="${tg.url('/group/show',cn=group.cn)}">${group.cn}</a>
- </td>
- <td>
- ${group.description}
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div py:if='(groups != None) and (len(groups) == 0)'>
- <h2>No results found for "${criteria}"</h2>
- </div>
- <div class="instructions" py:if='groups == None'>
- <p>
- Search automatically looks across multiple fields. If you want to find
- Joe in Finance, try typing "joe finance" into the search box.
- </p>
- <p>
- Exact matches are listed first, followed by partial matches. If your search
- is too broad, you will get a warning that the search returned too many
- results. Try being more specific.
- </p>
- <p>
- The results that come back are sortable. Simply click on a column
- header to sort on that header. A triangle will indicate the sorted
- column, along with its direction. Clicking and dragging between headers
- will allow you to resize the header.
- </p>
- </div>
-</div>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupnew.kid b/ipa-server/ipa-gui/ipagui/templates/groupnew.kid
deleted file mode 100644
index f5c83cae..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/groupnew.kid
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'grouplayout.kid'">
-<head>
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
- <title>Add Group</title>
-</head>
-<body>
-<div id="details">
- <h1 class="usergroup">Add Group</h1>
-
- ${form.display(action=tg.url('/group/create'), value=group)}
-</div>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid b/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid
deleted file mode 100644
index ef321079..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid
+++ /dev/null
@@ -1,149 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#"
- class="simpleroster">
- <form action="${action}" name="${name}" method="${method}" class="tableform"
- onsubmit="preSubmit()" >
-
- <input type="submit" class="submitbutton" name="submit" value="Add Group"/>
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicedit.js')}"></script>
-
- <?python searchurl = tg.url('/group/edit_search') ?>
-
- <script type="text/javascript">
- function doSearch() {
- $('searchresults').update("Searching...");
- new Ajax.Updater('searchresults',
- '${searchurl}',
- { asynchronous:true,
- parameters: { criteria: $('criteria').value },
- evalScripts: true });
- return false;
- }
- </script>
-
- <div py:for="field in hidden_fields"
- py:replace="field.display(value_for(field), **params_for(field))"
- />
-
- <h2 class="formsection">Group Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${group_fields.cn.field_id}"
- py:content="group_fields.cn.label" />:
- </th>
- <td>
- <span py:replace="group_fields.cn.display(value_for(group_fields.cn))" />
- <span py:if="tg.errors.get('cn')" class="fielderror"
- py:content="tg.errors.get('cn')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${group_fields.description.field_id}"
- py:content="group_fields.description.label" />:
- </th>
- <td>
- <span py:replace="group_fields.description.display(value_for(group_fields.description))" />
- <span py:if="tg.errors.get('description')" class="fielderror"
- py:content="tg.errors.get('description')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${group_fields.gidnumber.field_id}"
- py:content="group_fields.gidnumber.label" />:
- </th>
- <td>
- Generated by server
- </td>
- </tr>
- </table>
-
- <div style="clear:both">
- <h2 class="formsection">Add Members</h2>
-
- <div class="floatlist">
- <div class="floatheader">To Add:</div>
- <div id="newmembers">
- </div>
- </div>
-
- <div>
- <div id="search">
- <input id="criteria" type="text" name="criteria"
- onkeypress="return enterDoSearch(event);" />
- <input type="button" value="Find"
- onclick="return doSearch();"
- />
- </div>
- <div id="searchresults">
- </div>
- </div>
- </div>
-
-<hr />
-
- <input type="submit" class="submitbutton" name="submit" value="Add Group"/>
-
- </form>
-
- <script type="text/javascript">
- document.getElementById("form_cn").focus();
- </script>
-
- <script type="text/javascript">
- /*
- * This section restores the contents of the add and remove lists
- * dynamically if we have to refresh the page
- */
- if ($('form_dn_to_info_json').value != "") {
- dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON());
- }
- </script>
-
- <?python
- dnadds = value.get('dnadd', [])
- if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)):
- dnadds = [dnadds]
- ?>
-
- <script py:for="dnadd in dnadds">
- <?python
- dnadd_esc = ipahelper.javascript_string_escape(dnadd)
- ?>
- var dn = "${dnadd_esc}";
- var info = dn_to_info_hash[dn];
- var newdiv = addmember(dn, info);
- if (newdiv != null) {
- newdiv.style.display = 'block';
- }
- </script>
-
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid b/ipa-server/ipa-gui/ipagui/templates/groupshow.kid
deleted file mode 100644
index d0ca6982..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid
+++ /dev/null
@@ -1,131 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'grouplayout.kid'">
-<head>
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
- <title>View Group</title>
-</head>
-<body>
-<?python
-cn = group.get('cn')
-if isinstance(cn, list):
- cn = cn[0]
-edit_url = tg.url('/group/edit', cn=cn)
-from ipagui.helpers import userhelper
-?>
-<div id="details">
- <h1 class="usergroup">View Group</h1>
-
- <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups"
- class="submitbutton" type="button"
- onclick="document.location.href='${edit_url}'"
- value="Edit Group" />
-
- <h2 class="formsection">Group Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.cn.label" />:
- </th>
- <td>${group.get("cn")}</td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.description.label" />:
- </th>
- <td>${group.get("description")}</td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.gidnumber.label" />:
- </th>
- <td>${group.get("gidnumber")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.nsAccountLock.label" />:
- </th>
- <td>${userhelper.account_status_display(group.get("nsAccountLock"))}</td>
- </tr>
- </table>
-
- <h2 class="formsection">Group Members</h2>
- <div py:for="member in members">
- <?python
-
- member_uid = member.get('uid')
- member_inherited = member.get('inherited')
- if member_uid:
- member_cn = "%s %s" % (member.get('givenName', ''), member.get('sn', ''))
- member_desc = "(%s)" % member_uid
- if member_inherited:
- member_type = "iuser"
- else:
- member_type = "user"
- view_url = tg.url('/user/show', uid=member_uid)
- else:
- mem = member.get('cn')
- if isinstance(mem, list):
- mem = mem[0]
- member_cn = "%s" % mem
- member_desc = "[group]"
- if member_inherited:
- member_type = "igroup"
- else:
- member_type = "group"
- view_url = tg.url('/group/show', cn=member_cn)
- ?>
- <span py:if='member_type == "user"'>
- <b>
- <a href="${view_url}"
- >${member_cn}</a> ${member_desc}
- </b>
- </span>
- <span py:if='member_type == "iuser"'>
- <a href="${view_url}"
- >${member_cn}</a> ${member_desc}
- </span>
- <span py:if='member_type == "group"'>
- <b>
- <i>
- <a href="${view_url}"
- >${member_cn}</a> ${member_desc}
- </i>
- </b>
- </span>
- <span py:if='member_type == "igroup"'>
- <i>
- <a href="${view_url}"
- >${member_cn}</a> ${member_desc}
- </i>
- </span>
- </div>
-
- <br/>
-<hr />
- <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups"
- class="submitbutton" type="button"
- onclick="document.location.href='${edit_url}'"
- value="Edit Group" />
-</div>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid b/ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid
deleted file mode 100644
index 6b071d2d..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'policylayout.kid'">
-<head>
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
- <title>Edit IPA Policy</title>
-</head>
-<body>
- <div>
- <h1 class="policy">Edit IPA Policy</h1>
-
- ${form.display(action=tg.url('/ipapolicy/update'), value=ipapolicy)}
-</div>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid b/ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid
deleted file mode 100644
index a608829c..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid
+++ /dev/null
@@ -1,280 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#"
- class="simpleroster">
-
- <form action="${action}" name="${name}" method="${method}" class="tableform"
- onsubmit="preSubmit()" >
-
- <input type="submit" class="submitbutton" name="submit"
- value="Update Policy"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel Edit" />
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicedit.js')}"></script>
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script>
-
- <div py:for="field in hidden_fields"
- py:replace="field.display(value_for(field), **params_for(field))"
- />
-
- <h2 class="formsection">Search</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipasearchtimelimit.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipasearchtimelimit.display(value_for(ipapolicy_fields.ipasearchtimelimit))" />
- <span py:if="tg.errors.get('ipasearchtimelimit')" class="fielderror"
- py:content="tg.errors.get('ipasearchtimelimit')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipasearchrecordslimit.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipasearchrecordslimit.display(value_for(ipapolicy_fields.ipasearchrecordslimit))" />
- <span py:if="tg.errors.get('ipasearchrecordslimit')" class="fielderror"
- py:content="tg.errors.get('ipasearchrecordslimit')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipausersearchfields.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipausersearchfields.display(value_for(ipapolicy_fields.ipausersearchfields))" />
- <span py:if="tg.errors.get('ipausersearchfields')" class="fielderror"
- py:content="tg.errors.get('ipausersearchfields')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipagroupsearchfields.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipagroupsearchfields.display(value_for(ipapolicy_fields.ipagroupsearchfields))" />
- <span py:if="tg.errors.get('ipagroupsearchfields')" class="fielderror"
- py:content="tg.errors.get('ipagroupsearchfields')" />
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Password Policy</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipapwdexpadvnotify.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipapwdexpadvnotify.display(value_for(ipapolicy_fields.ipapwdexpadvnotify))" />
- <span py:if="tg.errors.get('ipapwdexpadvnotify')" class="fielderror"
- py:content="tg.errors.get('ipapwdexpadvnotify')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.krbminpwdlife.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.krbminpwdlife.display(value_for(ipapolicy_fields.krbminpwdlife))" />
- <span py:if="tg.errors.get('krbminpwdlife')" class="fielderror"
- py:content="tg.errors.get('krbminpwdlife')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.krbmaxpwdlife.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.krbmaxpwdlife.display(value_for(ipapolicy_fields.krbmaxpwdlife))" />
- <span py:if="tg.errors.get('krbmaxpwdlife')" class="fielderror"
- py:content="tg.errors.get('krbmaxpwdlife')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.krbpwdmindiffchars.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.krbpwdmindiffchars.display(value_for(ipapolicy_fields.krbpwdmindiffchars))" />
- <span py:if="tg.errors.get('krbpwdmindiffchars')" class="fielderror"
- py:content="tg.errors.get('krbpwdmindiffchars')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.krbpwdminlength.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.krbpwdminlength.display(value_for(ipapolicy_fields.krbpwdminlength))" />
- <span py:if="tg.errors.get('krbpwdminlength')" class="fielderror"
- py:content="tg.errors.get('krbpwdminlength')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.krbpwdhistorylength.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.krbpwdhistorylength.display(value_for(ipapolicy_fields.krbpwdhistorylength))" />
- <span py:if="tg.errors.get('krbpwdhistorylength')" class="fielderror"
- py:content="tg.errors.get('krbpwdhistorylength')" />
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">User Settings</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipamaxusernamelength.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipamaxusernamelength.display(value_for(ipapolicy_fields.ipamaxusernamelength))" />
- <span py:if="tg.errors.get('ipamaxusernamelength')" class="fielderror"
- py:content="tg.errors.get('ipamaxusernamelength')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipahomesrootdir.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipahomesrootdir.display(value_for(ipapolicy_fields.ipahomesrootdir))" />
- <span py:if="tg.errors.get('ipahomesrootdir')" class="fielderror"
- py:content="tg.errors.get('ipahomesrootdir')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipadefaultloginshell.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipadefaultloginshell.display(value_for(ipapolicy_fields.ipadefaultloginshell))" />
- <span py:if="tg.errors.get('ipadefaultloginshell')" class="fielderror"
- py:content="tg.errors.get('ipadefaultloginshell')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipadefaultprimarygroup.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipadefaultprimarygroup.display(value_for(ipapolicy_fields.ipadefaultprimarygroup))" />
- <span py:if="tg.errors.get('ipadefaultprimarygroup')" class="fielderror"
- py:content="tg.errors.get('ipadefaultprimarygroup')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="ipapolicy_fields.ipadefaultemaildomain.label" />:
- </th>
- <td>
- <span py:replace="ipapolicy_fields.ipadefaultemaildomain.display(value_for(ipapolicy_fields.ipadefaultemaildomain))" />
- <span py:if="tg.errors.get('ipadefaultemaildomain')" class="fielderror"
- py:content="tg.errors.get('ipadefaultemaildomain')" />
- </td>
- </tr>
- <!--
- <tr>
- <th>
- <label class="fieldlabel" for="${ipapolicy_fields.userobjectclasses.field_id}"
- py:content="ipapolicy_fields.userobjectclasses.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${ipapolicy_fields.userobjectclasses.field_id}">
- <tbody>
- <?python repetition = 0
- fld_index = 0
- fld_error = tg.errors.get('ipauserobjectclasses')
- ?>
- <tr py:for="fld in value_for(ipapolicy_fields.ipauserobjectclasses)"
- id="${ipapolicy_fields.userobjectclasses.field_id}_${repetition}"
- class="${ipapolicy_fields.userobjectclasses.field_class}">
-
- <td py:for="field in ipapolicy_fields.userobjectclasses.fields">
- <span><input class="textfield" type="text" id="${ipapolicy_fields.userobjectclasses.field_id}_${repetition}_ipauserobjectclasses" name="userobjectclasses-${repetition}.ipauserobjectclasses" value="${fld}"/></span>
- <span py:if="fld_error and fld_error[fld_index]" class="fielderror"
- py:content="tg.errors.get('ipauserobjectclasses')" />
- </td>
- <?python fld_index = fld_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${ipapolicy_fields.userobjectclasses.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${ipapolicy_fields.userobjectclasses.field_id}_doclink" href="javascript:ExpandingForm.addItem('${ipapolicy_fields.userobjectclasses.field_id}');">Add User Object Class</a>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" for="${ipapolicy_fields.groupobjectclasses.field_id}"
- py:content="ipapolicy_fields.groupobjectclasses.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${ipapolicy_fields.groupobjectclasses.field_id}">
- <tbody>
- <?python repetition = 0
- fld_index = 0
- fld_error = tg.errors.get('ipagroupobjectclasses')
- ?>
- <tr py:for="fld in value_for(ipapolicy_fields.ipagroupobjectclasses)"
- id="${ipapolicy_fields.groupobjectclasses.field_id}_${repetition}"
- class="${ipapolicy_fields.groupobjectclasses.field_class}">
-
- <td py:for="field in ipapolicy_fields.groupobjectclasses.fields">
- <span><input class="textfield" type="text" id="${ipapolicy_fields.groupobjectclasses.field_id}_${repetition}_ipagroupobjectclasses" name="groupobjectclasses-${repetition}.ipagroupobjectclasses" value="${fld}"/></span>
- <span py:if="fld_error and fld_error[fld_index]" class="fielderror"
- py:content="tg.errors.get('ipagroupobjectclasses')" />
- </td>
- <?python fld_index = fld_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${ipapolicy_fields.groupobjectclasses.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${ipapolicy_fields.groupobjectclasses.field_id}_doclink" href="javascript:ExpandingForm.addItem('${ipapolicy_fields.groupobjectclasses.field_id}');">Add Group Object Class</a>
- </td>
- </tr>
- -->
- </table>
-
- <hr/>
-
- <input type="submit" class="submitbutton" name="submit"
- value="Update Policy"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel Edit" />
- </form>
-
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid b/ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid
deleted file mode 100644
index 3549a9f1..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid
+++ /dev/null
@@ -1,188 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'policylayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Manage IPA Policy</title>
-</head>
-<body>
-
-<?python
-from ipagui.helpers import ipahelper
-edit_url = tg.url('/ipapolicy/edit')
-?>
-
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
-
- <h1 class="policy">Manage IPA Policy</h1>
- <input class="submitbutton" type="button"
- onclick="document.location.href='${edit_url}'"
- value="Edit Policy" />
-
- <h2 class="formsection">Search</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipasearchtimelimit.label" />:
- </th>
- <td>${ipapolicy.get("ipasearchtimelimit")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipasearchrecordslimit.label" />:
- </th>
- <td>${ipapolicy.get("ipasearchrecordslimit")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipausersearchfields.label" />:
- </th>
- <td>${ipapolicy.get("ipausersearchfields")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipagroupsearchfields.label" />:
- </th>
- <td>${ipapolicy.get("ipagroupsearchfields")}</td>
- </tr>
- </table>
-
- <h2 class="formsection">Password Policy</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipapwdexpadvnotify.label" />:
- </th>
- <td>${ipapolicy.get("ipapwdexpadvnotify")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.krbminpwdlife.label" />:
- </th>
- <td>${password.get("krbminpwdlife")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.krbmaxpwdlife.label" />:
- </th>
- <td>${password.get("krbmaxpwdlife")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.krbpwdmindiffchars.label" />:
- </th>
- <td>${password.get("krbpwdmindiffchars")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.krbpwdminlength.label" />:
- </th>
- <td>${password.get("krbpwdminlength")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.krbpwdhistorylength.label" />:
- </th>
- <td>${password.get("krbpwdhistorylength")}</td>
- </tr>
- </table>
- <h2 class="formsection">User Settings</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipamaxusernamelength.label" />:
- </th>
- <td>${ipapolicy.get("ipamaxusernamelength")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipahomesrootdir.label" />:
- </th>
- <td>${ipapolicy.get("ipahomesrootdir")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipadefaultloginshell.label" />:
- </th>
- <td>${ipapolicy.get("ipadefaultloginshell")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipadefaultprimarygroup.label" />:
- </th>
- <td>${ipapolicy.get("ipadefaultprimarygroup")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipadefaultemaildomain.label" />:
- </th>
- <td>${ipapolicy.get("ipadefaultemaildomain")}</td>
- </tr>
- <!--
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipauserobjectclasses.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = ipapolicy.get("ipauserobjectclasses", '')
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ipagroupobjectclasses.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = ipapolicy.get("ipagroupobjectclasses", '')
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- -->
- </table>
-<hr />
- <input class="submitbutton" type="button"
- onclick="document.location.href='${edit_url}'"
- value="Edit Policy" />
-
-
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/loginfailed.kid b/ipa-server/ipa-gui/ipagui/templates/loginfailed.kid
deleted file mode 100644
index 064cebbb..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/loginfailed.kid
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Permission Denied</title>
-</head>
-
-<body>
- <div id="main_content">
- <div id="details">
- <div id="alertbox" py:if="value_of('tg_flash', None)">
- <p py:content="XML(tg_flash)"></p></div>
- <h1>Permission Denied</h1>
- <div class="instructions">
- <p>
- You do not have permission to access this page.
- </p>
- </div>
- </div>
- </div>
-</body>
-
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/master.kid b/ipa-server/ipa-gui/ipagui/templates/master.kid
deleted file mode 100644
index d8b34142..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/master.kid
+++ /dev/null
@@ -1,121 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<?python import sitetemplate ?>
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#" py:extends="sitetemplate">
-
-<head py:match="item.tag=='{http://www.w3.org/1999/xhtml}head'" py:attrs="item.items()">
- <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
- <title py:replace="''">Your title goes here</title>
- <meta py:replace="item[:]"/>
- <style type="text/css" media="all">
- @import "${tg.url('/static/css/style_platform.css')}";
- @import "${tg.url('/static/css/style_platform-objects.css')}";
- @import "${tg.url('/static/css/style_freeipa.css')}";
- </style>
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/prototype.js')}"></script>
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/scriptaculous.js?load=effects')}"></script>
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/ipautil.js')}"></script>
-</head>
-
-<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
-
- <div id="head">
- <h1><a href="${tg.url('/')}">Free IPA</a></h1>
- <div id="headerinfo">
- <div id="searchbar">
- <form action="${tg.url('/topsearch')}" method="post">
- <select name="searchtype">
- <option>Users</option>
- <option>Groups</option>
- </select>
- <input class="searchtext" id="topsearchbox" type="text"
- name="searchvalue"
- value="Type search terms here."
- onfocus="clearsearch()" />
- <input type="submit" value="Search"/>
- </form>
- <script type="text/javascript">
- function clearsearch() {
- topsearchbox = document.getElementById('topsearchbox');
- topsearchbox.onfocus = null;
- topsearchbox.value = "";
- }
- </script>
- </div>
- </div>
-</div>
- <div id="navbar">
-<!-- hiding the tabs
- <ul>
- <li><a href="#">Overview</a></li>
- <li class="active"><a href="#">Users</a></li>
- <li><a href="#">Groups</a></li>
- <li><a href="#">Resources</a></li>
- <li><a href="#">Policy</a></li>
- <li><a href="#">Search</a></li>
- </ul>
--->
- <div id="login">
- <div py:if="tg.config('identity.on') and not defined('logging_in')" id="pageLogin">
- <span py:if="tg.identity.anonymous">
- Kerberos login failed.
- </span>
- <span py:if="not tg.identity.anonymous">
- Logged in as: ${tg.identity.user.display_name}
- </span>
- </div>
- </div>
-
-
- </div>
-
- <div id="content">
- <div id="sidebar">
- <h2>Tasks</h2>
- <ul>
- <li py:if="'admins' in tg.identity.groups"><a href="${tg.url('/user/new')}">Add User</a></li>
- <li><a href="${tg.url('/user/list')}">Find Users</a></li>
- </ul>
- <ul>
- <li py:if="'admins' in tg.identity.groups"><a href="${tg.url('/group/new')}">Add Group</a></li>
- <li><a href="${tg.url('/group/list')}">Find Groups</a></li>
- </ul>
- <ul py:if="'admins' in tg.identity.groups">
- <li><a href="${tg.url('/principal/new')}">Add Service Principal</a></li>
- <li><a href="${tg.url('/principal/list')}">Find Service Principal</a></li>
- </ul>
- <ul py:if="'admins' in tg.identity.groups">
- <li><a href="${tg.url('/policy/index')}">Manage Policy</a></li>
- </ul>
- <ul>
- <li py:if="not tg.identity.anonymous"><a href="${tg.url('/user/edit/', principal=tg.identity.user.display_name)}">Self Service</a></li>
- </ul>
- <ul py:if="'admins' in tg.identity.groups">
- <li><a href="${tg.url('/delegate/list')}">Delegations</a></li>
- </ul>
- </div>
-
- <div py:replace="[item.text]+item[:]"></div>
-
-
- </div>
-
-</body>
-
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/not_found.kid b/ipa-server/ipa-gui/ipagui/templates/not_found.kid
deleted file mode 100644
index 0bc4c05c..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/not_found.kid
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--
- Copyright (C) 2007-2008 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Page Not Found</title>
-</head>
-
-<body>
- <div id="main_content">
- <h1>Page Not Found</h1>
- <div py:if='message'>
- ${message}
- </div>
-
- </div>
-
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/policyindex.kid b/ipa-server/ipa-gui/ipagui/templates/policyindex.kid
deleted file mode 100644
index 081b942d..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/policyindex.kid
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'policylayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Manage Policy</title>
-</head>
-<body>
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
-
- <h1 class="policy">Manage Policy</h1>
-
- <table>
- <tbody>
- <tr>
- <td>
- <a href="${tg.url('/ipapolicy/show')}"
- >IPA Policy</a>
- </td>
- </tr>
- </tbody>
- </table>
-
-
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/policylayout.kid b/ipa-server/ipa-gui/ipagui/templates/policylayout.kid
deleted file mode 100644
index 7ece6cf9..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/policylayout.kid
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-</head>
-
-<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
- <div id="main_content">
-<div id="details">
- <div id="alertbox" py:if="value_of('tg_flash', None)"><p py:content="XML(tg_flash)"></p></div>
-
- <div py:replace="[item.text]+item[:]"></div>
- </div>
-</div>
-</body>
-
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/principallayout.kid b/ipa-server/ipa-gui/ipagui/templates/principallayout.kid
deleted file mode 100644
index 62ec92bc..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/principallayout.kid
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-</head>
-
-<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
- <div id="main_content">
- <div id="details">
- <div id="alertbox" py:if="value_of('tg_flash', None)">
- <p py:content="XML(tg_flash)"></p></div>
-
- <div py:replace="[item.text]+item[:]"></div>
- </div>
-
- </div>
-</body>
-
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/principallist.kid b/ipa-server/ipa-gui/ipagui/templates/principallist.kid
deleted file mode 100644
index 9dc627ea..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/principallist.kid
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'principallayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Find Service Principals</title>
-</head>
-<body>
- <h1 class="system">Find Service Principals</h1>
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
- <div id="search">
- <form action="${tg.url('/principal/list')}" method="get">
- <input id="hostname" type="text" name="hostname" value="${hostname}" />
- <input class="searchbutton" type="submit" value="Find Service Principals"/>
- </form>
- <script type="text/javascript">
- document.getElementById("hostname").focus();
- </script>
- </div>
- <div py:if='(principals != None) and (len(principals) > 0)'>
- <h2>${len(principals)} results returned:</h2>
- <table id="resultstable" class="details sortable resizable" cellspacing="0">
- <thead>
- <tr>
- <th>
- Hostname
- </th>
- <th>
- Service
- </th>
- </tr>
- </thead>
- <tbody>
- <tr py:for="principal in principals">
- <td>
- <a href="${tg.url('/principal/show',principal=principal.krbprincipalname,principal_dn=principal.dn)}"
- >${principal.hostname}</a>
- </td>
- <td>
- <a href="${tg.url('/principal/show',principal=principal.krbprincipalname,principal_dn=principal.dn)}"
- >${principal.service}</a>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id="alertbox" py:if='(principals != None) and (len(principals) == 0)'>
- <p>No results found for "${hostname}"</p>
- </div>
-
- <div class="instructions" py:if='principals == None'>
- <p>
- Exact matches are listed first, followed by partial matches. If your search
- is too broad, you will get a warning that the search returned too many
- results. Try being more specific.
- </p>
- <p>
- The results that come back are sortable. Simply click on a column
- header to sort on that header. A triangle will indicate the sorted
- column, along with its direction. Clicking and dragging between headers
- will allow you to resize the header.
- </p>
- </div>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/principalnew.kid b/ipa-server/ipa-gui/ipagui/templates/principalnew.kid
deleted file mode 100644
index b7e02891..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/principalnew.kid
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'principallayout.kid'">
-<head>
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
- <title>Add Service Principal</title>
-</head>
-<body>
- <h1 class="system">Add Service Principal</h1>
-
- ${form.display(action=tg.url('/principal/create'), value=principal)}
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/principalnewform.kid b/ipa-server/ipa-gui/ipagui/templates/principalnewform.kid
deleted file mode 100644
index fe865b52..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/principalnewform.kid
+++ /dev/null
@@ -1,119 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#"
- class="simpleroster">
- <form action="${action}" name="${name}" method="${method}" class="tableform"
- onsubmit="preSubmit()" >
-
- <input type="submit" class="submitbutton" name="submit" value="Add Principal"/>
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicedit.js')}"></script>
-
- <?python searchurl = tg.url('/principal/edit_search') ?>
-
- <script type="text/javascript">
- function toggleOther(field) {
- otherField = document.getElementById('form_other');
- var e=document.getElementById(field).value;
- if ( e == "other") {
- otherField.disabled = false;
- } else {
- otherField.disabled =true;
- }
- }
-
- function doSearch() {
- $('searchresults').update("Searching...");
- new Ajax.Updater('searchresults',
- '${searchurl}',
- { asynchronous:true,
- parameters: { criteria: $('criteria').value },
- evalScripts: true });
- return false;
- }
- </script>
-
- <div py:for="field in hidden_fields"
- py:replace="field.display(value_for(field), **params_for(field))"
- />
-
- <h2 class="formsection">Service Principal Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${principal_fields.hostname.field_id}"
- py:content="principal_fields.hostname.label" />:
- </th>
- <td>
- <span py:replace="principal_fields.hostname.display(value_for(principal_fields.hostname))" />
- <span py:if="tg.errors.get('hostname')" class="fielderror"
- py:content="tg.errors.get('hostname')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${principal_fields.service.field_id}"
- py:content="principal_fields.service.label" />:
- </th>
- <td>
- <span py:replace="principal_fields.service.display(value_for(principal_fields.service))" />
- <span py:if="tg.errors.get('service')" class="fielderror"
- py:content="tg.errors.get('service')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${principal_fields.other.field_id}"
- py:content="principal_fields.other.label" />:
- </th>
- <td>
- <span py:replace="principal_fields.other.display(value_for(principal_fields.other))" />
- <span py:if="tg.errors.get('other')" class="fielderror"
- py:content="tg.errors.get('other')" />
- <script type="text/javascript">
- var e=document.getElementById('form_service').value;
- if ( e != "other") {
- document.getElementById('form_other').disabled = true;
- }
- </script>
-
- </td>
- </tr>
-
- </table>
-
-<hr />
-
- <input type="submit" class="submitbutton" name="submit" value="Add Principal"/>
-
- </form>
-
- <script type="text/javascript">
- document.getElementById("form_hostname").focus();
- </script>
-
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/principalshow.kid b/ipa-server/ipa-gui/ipagui/templates/principalshow.kid
deleted file mode 100644
index 5904f034..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/principalshow.kid
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'policylayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>View Service Principal</title>
-</head>
-<body>
-
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
-
- <script type="text/javascript" charset="utf-8">
- function confirmDelete() {
- if (confirm("Are you sure you want to delete this service principal?")) {
- $('deleteform').submit();
- }
- return false;
- }
- </script>
-
- <form id='deleteform'
- method="post" action="${tg.url('/principal/delete')}">
-
- <input type="hidden" name="principal" value="${principal.get('principal_dn')}" />
-
- <input type="submit" class="submitbutton"
- value="Delete Principal"
- onclick="return confirmDelete();"
- />
-
- <h1 class="system">View Service Principal</h1>
-
- <h2 class="formsection">Principal</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel">Host</label>:
- </th>
- <td>${principal.get("hostname")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel">Service</label>:
- </th>
- <td>${principal.get("service")}</td>
- </tr>
- </table>
- </form>
-
-<hr />
-
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid b/ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid
deleted file mode 100644
index 89aececc..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Error</title>
-</head>
-
-<body>
- <div id="main_content">
- <h1>An unexpected error occured</h1>
-
- <div py:if='message'>
- <b>Message:</b>
- <pre>${message}</pre>
- </div>
-
- <div py:if='error_msg'>
- <b>HTTP Error Message:</b>
- <pre>${error_msg}</pre>
- </div>
-
- <div py:if='details'>
- <b>Stack Trace:</b>
- <pre>${details}</pre>
- </div>
- </div>
-
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/useredit.kid b/ipa-server/ipa-gui/ipagui/templates/useredit.kid
deleted file mode 100644
index 9633b53a..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/useredit.kid
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'userlayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Edit User</title>
-</head>
-<body>
-
- <div>
- <div style="float:right">
- <input type="checkbox" id="toggleprotected_checkbox"
- onclick="toggleProtectedFields(this);">
- <span class="small">edit protected fields</span>
- </input>
- </div>
- <h1 class="user">Edit User</h1>
- </div>
-
-<?python
-from ipagui.helpers import userhelper
-pw_expires_days = userhelper.password_expires_in(user.get("krbPasswordExpiration"))
-pw_expires_soon = userhelper.password_expires_soon(pw_expires_days)
-pw_is_expired = userhelper.password_is_expired(pw_expires_days)
-if pw_expires_days != 1:
- days_suffix = "s"
-else:
- days_suffix = ""
-?>
-
- <div py:if='pw_expires_soon' class="warning_message">
- ${user.get("uid")}'s password will expire in ${pw_expires_days} day${days_suffix}
- </div>
- <div py:if='pw_is_expired' class="warning_message">
- ${user.get("uid")}'s password has expired
- </div>
-
- ${form.display(action=tg.url('/user/update'), value=user, user_groups=user_groups)}
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid b/ipa-server/ipa-gui/ipagui/templates/usereditform.kid
deleted file mode 100644
index b2a3c39c..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid
+++ /dev/null
@@ -1,949 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#"
- class="simpleroster">
-
- <form style="display:none" id='deleteform'
- method="post" action="${tg.url('/user/delete')}">
- <input type="hidden" name="uid" value="${value.get('uid')}" />
- </form>
-
- <form action="${action}" name="${name}" method="${method}" class="tableform"
- onsubmit="preSubmit()">
-
- <input type="submit" class="submitbutton" name="submit"
- value="Update User"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel Edit" />
- <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups and tg.identity.display_name != value.get('uid')"
- type="button" class="submitbutton"
- value="Delete User"
- onclick="return confirmDelete();"
- />
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicedit.js')}"></script>
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicselect.js')}"></script>
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script>
-
- <?python
- searchurl = tg.url('/user/edit_search')
- selectSearchurl = tg.url('/user/user_select_search')
- ?>
-
- <script type="text/javascript">
- function toggleProtectedFields(checkbox) {
- passwordField = document.getElementById('form_krbprincipalkey');
- passwordConfirmField = document.getElementById('form_krbprincipalkey_confirm');
- uidField = document.getElementById('form_uid');
- uidnumberField = document.getElementById('form_uidnumber');
- gidnumberField = document.getElementById('form_gidnumber');
- homedirectoryField = document.getElementById('form_homedirectory');
- if (checkbox.checked) {
- passwordField.disabled = false;
- passwordConfirmField.disabled = false;
- uidField.disabled = false;
- uidnumberField.disabled = false;
- gidnumberField.disabled = false;
- homedirectoryField.disabled = false;
- $('form_editprotected').value = 'true';
- } else {
- passwordField.disabled = true;
- passwordConfirmField.disabled = true;
- uidField.disabled = true;
- uidnumberField.disabled = true;
- gidnumberField.disabled = true;
- homedirectoryField.disabled = true;
- $('form_editprotected').value = '';
- }
- }
-
- function warnRDN() {
- if (confirm("Are you sure you want to change the login name?\nThis can have unexpected results. Additionally, a password change will be required.")) {
- return true;
- }
- return false;
- }
-
- function doSearch() {
- $('searchresults').update("Searching...");
- new Ajax.Updater('searchresults',
- '${searchurl}',
- { asynchronous:true,
- parameters: { criteria: $('criteria').value },
- evalScripts: true });
- return false;
- }
-
- // override dynamicedit.js version
- // we don't need to show [group] nor italize groups
- function renderMemberInfo(newdiv, info) {
- if (info.type == "group") {
- newdiv.appendChild(document.createTextNode(
- info.name + " "));
- }
- }
-
- function doSelectSearch(which_select) {
- $(which_select + '_searchresults').update("Searching...");
- new Ajax.Updater(which_select + '_searchresults',
- '${selectSearchurl}',
- { asynchronous:true,
- parameters: { criteria: $(which_select + '_criteria').value,
- which_select: which_select},
- evalScripts: true });
- return false;
- }
-
- function confirmDelete() {
- if (confirm("Are you sure you want to delete this person?")) {
- $('deleteform').submit();
- }
- return false;
- }
- </script>
-
-
- <div py:for="field in hidden_fields"
- py:replace="field.display(value_for(field), **params_for(field))"
- />
-
- <h2 class="formsection">Identity Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.title.field_id}"
- py:content="user_fields.title.label" />:
- </th>
- <td>
- <span py:replace="user_fields.title.display(value_for(user_fields.title))" />
- <span py:if="tg.errors.get('title')" class="fielderror"
- py:content="tg.errors.get('title')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.givenname.field_id}"
- py:content="user_fields.givenname.label" />:
- </th>
- <td>
- <span py:replace="user_fields.givenname.display(value_for(user_fields.givenname))" />
- <span py:if="tg.errors.get('givenname')" class="fielderror"
- py:content="tg.errors.get('givenname')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.sn.field_id}"
- py:content="user_fields.sn.label" />:
- </th>
- <td>
- <span py:replace="user_fields.sn.display(value_for(user_fields.sn))" />
- <span py:if="tg.errors.get('sn')" class="fielderror"
- py:content="tg.errors.get('sn')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.cns.field_id}"
- py:content="user_fields.cns.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.cns.field_id}">
- <tbody>
- <?python repetition = 0
- cn_index = 0
- cn_error = tg.errors.get('cn')
- ?>
- <tr py:for="cn in value_for(user_fields.cn)"
- id="${user_fields.cns.field_id}_${repetition}"
- class="${user_fields.cns.field_class}">
-
- <td py:for="field in user_fields.cns.fields">
- <span><input class="textfield" type="text" id="${user_fields.cns.field_id}_${repetition}_cn" name="cns-${repetition}.cn" value="${cn}"/></span>
- <span py:if="cn_error and cn_error[cn_index]" class="fielderror"
- py:content="tg.errors.get('cn')" />
- </td>
- <?python cn_index = cn_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.cns.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.cns.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.cns.field_id}');">Add Full Name</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.displayname.field_id}"
- py:content="user_fields.displayname.label" />:
- </th>
- <td>
- <span py:replace="user_fields.displayname.display(value_for(user_fields.displayname))" />
- <span py:if="tg.errors.get('displayname')" class="fielderror"
- py:content="tg.errors.get('displayname')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.initials.field_id}"
- py:content="user_fields.initials.label" />:
- </th>
- <td>
- <span py:replace="user_fields.initials.display(value_for(user_fields.initials))" />
- <span py:if="tg.errors.get('initials')" class="fielderror"
- py:content="tg.errors.get('initials')" />
-
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Account Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.nsAccountLock.field_id}"
- py:content="user_fields.nsAccountLock.label" />:
- </th>
- <td>
- <span py:replace="user_fields.nsAccountLock.display(value_for(user_fields.nsAccountLock))" />
- <span py:if="tg.errors.get('nsAccountLock')" class="fielderror"
- py:content="tg.errors.get('nsAccountLock')" />
- <script py:if="tg.identity.display_name == value.get('uid')" type="text/javascript">
- document.getElementById('form_nsAccountLock').disabled = true;
- </script>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.uid.field_id}"
- py:content="user_fields.uid.label" />:
- </th>
- <td>
- <span py:replace="user_fields.uid.display(
- value_for(user_fields.uid))" />
- <span py:if="tg.errors.get('uid')" class="fielderror"
- py:content="tg.errors.get('uid')" />
-
- <script type="text/javascript">
- document.getElementById('form_uid').disabled = true;
- </script>
- </td>
- </tr>
-
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${user_fields.krbprincipalkey.field_id}"
- py:content="user_fields.krbprincipalkey.label" />:
- </th>
- <td valign="top">
- <span py:replace="user_fields.krbprincipalkey.display(value_for(user_fields.krbprincipalkey))" />
- <span py:if="tg.errors.get('krbprincipalkey')" class="fielderror"
- py:content="tg.errors.get('krbprincipalkey')" />
-
- <script type="text/javascript">
- document.getElementById('form_krbprincipalkey').disabled = true;
- </script>
-
- <!--
- <span id="password_text">********</span>
- <input id="genpassword_button" type="button" value="Generate Password"
- disabled="true"
- onclick="new Ajax.Request('${tg.url('/user/generate_password')}',
- {
- method: 'get',
- onSuccess: function(transport) {
- document.getElementById('form_krbprincipalkey').value =
- transport.responseText;
- }
- });" />
- <br />
- <input type="checkbox"
- onclick="togglePassword(this);"><span class="xsmall">edit</span></input>
- <script type="text/javascript">
- document.getElementById('form_krbprincipalkey').style.display='none';
-
- function togglePassword(checkbox) {
- passwordField = document.getElementById('form_krbprincipalkey');
- passwordText = document.getElementById('password_text');
- passwordButton = document.getElementById('genpassword_button');
- if (checkbox.checked) {
- passwordField.style.display='inline';
- passwordText.style.display='none';
- passwordButton.disabled=false;
- } else {
- passwordField.style.display='none';
- passwordText.style.display='inline';
- passwordButton.disabled=true;
- }
- }
- </script>
- -->
- </td>
- </tr>
-
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${user_fields.krbprincipalkey_confirm.field_id}"
- py:content="user_fields.krbprincipalkey_confirm.label" />:
- </th>
- <td valign="top">
- <span py:replace="user_fields.krbprincipalkey_confirm.display(
- value_for(user_fields.krbprincipalkey_confirm))" />
- <span py:if="tg.errors.get('krbprincipalkey_confirm')" class="fielderror"
- py:content="tg.errors.get('krbprincipalkey_confirm')" />
-
- <script type="text/javascript">
- document.getElementById('form_krbprincipalkey_confirm').disabled = true;
- </script>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.uidnumber.field_id}"
- py:content="user_fields.uidnumber.label" />:
- </th>
- <td>
- <span py:replace="user_fields.uidnumber.display(
- value_for(user_fields.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>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.gidnumber.field_id}"
- py:content="user_fields.gidnumber.label" />:
- </th>
- <td>
- <span py:replace="user_fields.gidnumber.display(
- value_for(user_fields.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>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.homedirectory.field_id}"
- py:content="user_fields.homedirectory.label" />:
- </th>
- <td>
- <span py:replace="user_fields.homedirectory.display(
- value_for(user_fields.homedirectory))" />
- <span py:if="tg.errors.get('homedirectory')" class="fielderror"
- py:content="tg.errors.get('homedirectory')" />
-
- <script type="text/javascript">
- document.getElementById('form_homedirectory').disabled = true;
- </script>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.loginshell.field_id}"
- py:content="user_fields.loginshell.label" />:
- </th>
- <td>
- <span py:replace="user_fields.loginshell.display(
- value_for(user_fields.loginshell))" />
- <span py:if="tg.errors.get('loginshell')" class="fielderror"
- py:content="tg.errors.get('loginshell')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.gecos.field_id}"
- py:content="user_fields.gecos.label" />:
- </th>
- <td>
- <span py:replace="user_fields.gecos.display(
- value_for(user_fields.gecos))" />
- <span py:if="tg.errors.get('gecos')" class="fielderror"
- py:content="tg.errors.get('gecos')" />
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Contact Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.mail.field_id}"
- py:content="user_fields.mail.label" />:
- </th>
- <td>
- <span py:replace="user_fields.mail.display(value_for(user_fields.mail))" />
- <span py:if="tg.errors.get('mail')" class="fielderror"
- py:content="tg.errors.get('mail')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.telephonenumbers.field_id}"
- py:content="user_fields.telephonenumbers.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.telephonenumbers.field_id}">
- <tbody>
- <?python repetition = 0
- tele_index = 0
- tele_error = tg.errors.get('telephonenumber')
- ?>
- <tr py:for="tele in value_for(user_fields.telephonenumber)"
- id="${user_fields.telephonenumbers.field_id}_${repetition}"
- class="${user_fields.telephonenumbers.field_class}">
-
- <td py:for="field in user_fields.telephonenumbers.fields">
- <span><input class="textfield" type="text" id="${user_fields.telephonenumbers.field_id}_${repetition}_telephonenumber" name="telephonenumbers-${repetition}.telephonenumber" value="${tele}"/></span>
- <span py:if="tele_error and tele_error[tele_index]" class="fielderror"
- py:content="tg.errors.get('telephonenumber')" />
- </td>
- <?python tele_index = tele_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.telephonenumbers.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.telephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.telephonenumbers.field_id}');">Add Work Number</a>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.facsimiletelephonenumbers.field_id}"
- py:content="user_fields.facsimiletelephonenumbers.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.facsimiletelephonenumbers.field_id}">
- <tbody>
- <?python repetition = 0
- fax_index = 0
- fax_error = tg.errors.get('facsimiletelephonenumber')
- ?>
- <tr py:for="fax in value_for(user_fields.facsimiletelephonenumber)"
- id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}"
- class="${user_fields.facsimiletelephonenumbers.field_class}">
-
- <td py:for="field in user_fields.facsimiletelephonenumbers.fields">
- <span><input class="textfield" type="text" id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}_facsimiletelephonenumber" name="facsimiletelephonenumbers-${repetition}.facsimiletelephonenumber" value="${fax}"/></span>
- <span py:if="fax_error and fax_error[fax_index]" class="fielderror"
- py:content="tg.errors.get('facsimiletelephonenumber')" />
- </td>
- <?python fax_index = fax_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.facsimiletelephonenumbers.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.facsimiletelephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.facsimiletelephonenumbers.field_id}');">Add Fax Number</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.mobiles.field_id}"
- py:content="user_fields.mobiles.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.mobiles.field_id}">
- <tbody>
- <?python repetition = 0
- mobile_index = 0
- mobile_error = tg.errors.get('mobile')
- ?>
- <tr py:for="mobile in value_for(user_fields.mobile)"
- id="${user_fields.mobiles.field_id}_${repetition}"
- class="${user_fields.mobiles.field_class}">
-
- <td py:for="field in user_fields.mobiles.fields">
- <span><input class="textfield" type="text" id="${user_fields.mobiles.field_id}_${repetition}_mobile" name="mobiles-${repetition}.mobile" value="${mobile}"/></span>
- <span py:if="mobile_error and mobile_error[mobile_index]" class="fielderror"
- py:content="tg.errors.get('mobile')" />
- </td>
- <?python mobile_index = mobile_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.mobiles.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.mobiles.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.mobiles.field_id}');">Add Cell Number</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.pagers.field_id}"
- py:content="user_fields.pagers.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.pagers.field_id}">
- <tbody>
- <?python repetition = 0
- pager_index = 0
- pager_error = tg.errors.get('pager')
- ?>
- <tr py:for="pager in value_for(user_fields.pager)"
- id="${user_fields.pagers.field_id}_${repetition}"
- class="${user_fields.pagers.field_class}">
-
- <td py:for="field in user_fields.pagers.fields">
- <span><input class="textfield" type="text" id="${user_fields.pagers.field_id}_${repetition}_pager" name="pagers-${repetition}.pager" value="${pager}"/></span>
- <span py:if="pager_error and pager_error[pager_index]" class="fielderror"
- py:content="tg.errors.get('pager')" />
- </td>
- <?python pager_index = pager_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.pagers.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.pagers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.pagers.field_id}');">Add Pager Number</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.homephones.field_id}"
- py:content="user_fields.homephones.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.homephones.field_id}">
- <tbody>
- <?python repetition = 0
- homephone_index = 0
- homephone_error = tg.errors.get('homephone')
- ?>
- <tr py:for="homephone in value_for(user_fields.homephone)"
- id="${user_fields.homephones.field_id}_${repetition}"
- class="${user_fields.homephones.field_class}">
-
- <td py:for="field in user_fields.homephones.fields">
- <span><input class="textfield" type="text" id="${user_fields.homephones.field_id}_${repetition}_homephone" name="homephones-${repetition}.homephone" value="${homephone}"/></span>
- <span py:if="homephone_error and homephone_error[homephone_index]" class="fielderror"
- py:content="tg.errors.get('homephone')" />
- </td>
- <?python homephone_index = homephone_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.homephones.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.homephones.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.homephones.field_id}');">Add Home Phone</a>
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Mailing Address</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.street.field_id}"
- py:content="user_fields.street.label" />:
- </th>
- <td>
- <span py:replace="user_fields.street.display(value_for(user_fields.street))" />
- <span py:if="tg.errors.get('street')" class="fielderror"
- py:content="tg.errors.get('street')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.roomnumber.field_id}"
- py:content="user_fields.roomnumber.label" />:
- </th>
- <td>
- <span py:replace="user_fields.roomnumber.display(value_for(user_fields.roomnumber))" />
- <span py:if="tg.errors.get('roomnumber')" class="fielderror"
- py:content="tg.errors.get('roomnumber')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.l.field_id}"
- py:content="user_fields.l.label" />:
- </th>
- <td>
- <span py:replace="user_fields.l.display(value_for(user_fields.l))" />
- <span py:if="tg.errors.get('l')" class="fielderror"
- py:content="tg.errors.get('l')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.st.field_id}"
- py:content="user_fields.st.label" />:
- </th>
- <td>
- <span py:replace="user_fields.st.display(value_for(user_fields.st))" />
- <span py:if="tg.errors.get('st')" class="fielderror"
- py:content="tg.errors.get('st')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.postalcode.field_id}"
- py:content="user_fields.postalcode.label" />:
- </th>
- <td>
- <span py:replace="user_fields.postalcode.display(value_for(user_fields.postalcode))" />
- <span py:if="tg.errors.get('postalcode')" class="fielderror"
- py:content="tg.errors.get('postalcode')" />
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Employee Information</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.ou.field_id}"
- py:content="user_fields.ou.label" />:
- </th>
- <td>
- <span py:replace="user_fields.ou.display(value_for(user_fields.ou))" />
- <span py:if="tg.errors.get('ou')" class="fielderror"
- py:content="tg.errors.get('ou')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.businesscategory.field_id}"
- py:content="user_fields.businesscategory.label" />:
- </th>
- <td>
- <span py:replace="user_fields.businesscategory.display(value_for(user_fields.businesscategory))" />
- <span py:if="tg.errors.get('businesscategory')" class="fielderror"
- py:content="tg.errors.get('businesscategory')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.description.field_id}"
- py:content="user_fields.description.label" />:
- </th>
- <td>
- <span py:replace="user_fields.description.display(value_for(user_fields.description))" />
- <span py:if="tg.errors.get('description')" class="fielderror"
- py:content="tg.errors.get('description')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.employeetype.field_id}"
- py:content="user_fields.employeetype.label" />:
- </th>
- <td>
- <span py:replace="user_fields.employeetype.display(value_for(user_fields.employeetype))" />
- <span py:if="tg.errors.get('employeetype')" class="fielderror"
- py:content="tg.errors.get('employeetype')" />
- </td>
- </tr>
-
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${user_fields.manager.field_id}"
- py:content="user_fields.manager.label" />:
- </th>
- <td valign="top">
- <div>
- <span id='manager_select_cn'>${value_for(user_fields.manager_cn)}</span>
- <span py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" id='manager_links'>
- <a href="#" onclick="return clearSelect('manager');">clear</a>
- <a href="#" onclick="return startSelect('manager');">change</a>
- </span>
- <span py:if="tg.errors.get('manager')" class="fielderror"
- py:content="tg.errors.get('manager')" />
- </div>
- <div id="manager_searcharea" style="display:none">
- <div>
- <input id="manager_criteria" type="text"
- onkeypress="return enterDoSelectSearch(event, 'manager');" />
- <input type="button" value="Find"
- onclick="return doSelectSearch('manager');"
- />
- </div>
- <div id="manager_searchresults">
- </div>
- </div>
- </td>
- </tr>
-
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${user_fields.secretary.field_id}"
- py:content="user_fields.secretary.label" />:
- </th>
- <td valign="top">
- <div>
- <span id='secretary_select_cn'>${value_for(user_fields.secretary_cn)}</span>
- <span id='secretary_links'>
- <a href="#" onclick="return clearSelect('secretary');">clear</a>
- <a href="#" onclick="return startSelect('secretary');">change</a>
- </span>
- <span py:if="tg.errors.get('secretary')" class="fielderror"
- py:content="tg.errors.get('secretary')" />
- </div>
- <div id="secretary_searcharea" style="display:none">
- <div>
- <input id="secretary_criteria" type="text"
- onkeypress="return enterDoSelectSearch(event, 'secretary');" />
- <input type="button" value="Find"
- onclick="return doSelectSearch('secretary');"
- />
- </div>
- <div id="secretary_searchresults">
- </div>
- </div>
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Misc Information</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.carlicense.field_id}"
- py:content="user_fields.carlicense.label" />:
- </th>
- <td>
- <span py:replace="user_fields.carlicense.display(value_for(user_fields.carlicense))" />
- <span py:if="tg.errors.get('carlicense')" class="fielderror"
- py:content="tg.errors.get('carlicense')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.labeleduri.field_id}"
- py:content="user_fields.labeleduri.label" />:
- </th>
- <td>
- <span py:replace="user_fields.labeleduri.display(value_for(user_fields.labeleduri))" />
- <span py:if="tg.errors.get('labeleduri')" class="fielderror"
- py:content="tg.errors.get('labeleduri')" />
- </td>
- </tr>
- </table>
-
- <div py:if='len(custom_fields) &gt; 0'>
- <h2 class="formsection" >Custom Fields</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr py:for='custom_field in custom_fields'>
- <th>
- <label class="fieldlabel" for="${custom_field.field_id}"
- py:content="custom_field.label" />:
- </th>
- <td>
- <span py:replace="custom_field.display(value_for(custom_field))" />
- <span py:if="tg.errors.get(custom_field.name)" class="fielderror"
- py:content="tg.errors.get(custom_field.name)" />
- </td>
- </tr>
- </table>
- </div>
-
-
- <div>
- <h2 class="formsection">Groups</h2>
-
- <div class="floatlist">
- <div py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" class="floatheader">To Remove:</div>
- <div id="delmembers">
- </div>
- </div>
-
- <div>
- <?python div_counter = 1 ?>
- <div py:for="group in user_groups" id="member-${div_counter}">
- <?python
- group_dn = group.get('dn')
- group_dn_esc = ipahelper.javascript_string_escape(group_dn)
-
- group_name = group.get('cn')
- group_descr = "[group]"
- group_type = "group"
-
- group_name_esc = ipahelper.javascript_string_escape(group_name)
- group_descr_esc = ipahelper.javascript_string_escape(group_descr)
- group_type_esc = ipahelper.javascript_string_escape(group_type)
- ?>
- <span id="member-info-${div_counter}"></span>
- <script type="text/javascript">
- renderMemberInfo($('member-info-${div_counter}'),
- new MemberDisplayInfo('${group_name_esc}',
- '${group_descr_esc}',
- '${group_type_esc}'));
- </script>
- <a py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" href="#"
- onclick="removememberHandler(this, '${group_dn_esc}',
- new MemberDisplayInfo('${group_name_esc}',
- '${group_descr_esc}',
- '${group_type_esc}'));
- return false;"
- >remove</a>
- <script type="text/javascript">
- dn_to_member_div_id['${group_dn_esc}'] = "member-${div_counter}";
- member_hash["${group_dn_esc}"] = 1;
- </script>
- <?python
- div_counter = div_counter + 1
- ?>
- </div>
- &nbsp; <!-- a space here to prevent an empty div -->
- </div>
-
- </div>
-
- <div py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" style="clear:both">
- <h2 class="formsection">Add Groups</h2>
-
- <div class="floatlist">
- <div class="floatheader">To Add:</div>
- <div id="newmembers">
- </div>
- </div>
-
- <div>
- <div id="search">
- <input id="criteria" type="text" name="criteria"
- onkeypress="return enterDoSearch(event);" />
- <input type="button" value="Find"
- onclick="return doSearch();"
- />
- </div>
- <div id="searchresults">
- </div>
- </div>
- </div>
-
- <hr/>
-
- <input type="submit" class="submitbutton" name="submit"
- value="Update User"/>
- <input type="submit" class="submitbutton" name="submit"
- value="Cancel Edit" />
- <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups and tg.identity.display_name != value.get('uid')"
- type="button" class="submitbutton"
- value="Delete User"
- onclick="return confirmDelete();"
- />
-
- </form>
-
- <script type="text/javascript">
- /*
- * This section restores the contents of the add and remove lists
- * dynamically if we have to refresh the page
- */
- if ($('form_dn_to_info_json').value != "") {
- dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON());
- }
-
- if ($('form_editprotected').value != "") {
- $('toggleprotected_checkbox').checked = true;
- toggleProtectedFields($('toggleprotected_checkbox'));
- }
- </script>
-
- <?python
- dnadds = value.get('dnadd', [])
- if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)):
- dnadds = [dnadds]
-
- dndels = value.get('dndel', [])
- if not(isinstance(dndels,list) or isinstance(dndels,tuple)):
- dndels = [dndels]
- ?>
-
- <script py:for="dnadd in dnadds">
- <?python
- dnadd_esc = ipahelper.javascript_string_escape(dnadd)
- ?>
- var dn = "${dnadd_esc}";
- var info = dn_to_info_hash[dn];
- var newdiv = addmember(dn, info);
- if (newdiv != null) {
- newdiv.style.display = 'block';
- }
- </script>
-
- <script py:for="dndel in dndels">
- <?python
- dndel_esc = ipahelper.javascript_string_escape(dndel)
- ?>
- var dn = "${dndel_esc}";
- var info = dn_to_info_hash[dn];
- var newdiv = removemember(dn, info);
- newdiv.style.display = 'block';
- orig_div_id = dn_to_member_div_id[dn]
- $(orig_div_id).style.display = 'none';
- </script>
-
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/userlayout.kid b/ipa-server/ipa-gui/ipagui/templates/userlayout.kid
deleted file mode 100644
index 7625ffdd..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/userlayout.kid
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-</head>
-
-<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
- <div id="main_content">
- <div id="details">
- <div id="alertbox" py:if="value_of('tg_flash', None)">
- <p py:content="XML(tg_flash)"></p></div>
-
- <div py:replace="[item.text]+item[:]"></div>
- </div>
-
-<!-- <div id="sidebar">
- <h2>Tools</h2>
- <a href="${tg.url('/user/new')}">Add User</a><br/>
- <a href="${tg.url('/user/list')}">Find Users</a><br/>
- </div> -->
- </div>
-</body>
-
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/userlist.kid b/ipa-server/ipa-gui/ipagui/templates/userlist.kid
deleted file mode 100644
index 5dfe2bde..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/userlist.kid
+++ /dev/null
@@ -1,118 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'userlayout.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Find Users</title>
-</head>
-<body>
- <h1 class="user">Find Users</h1>
- <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
- <div id="search">
- <form action="${tg.url('/user/list')}" method="get">
- <input id="uid" type="text" name="uid" value="${uid}" />
- <input class="searchbutton" type="submit" value="Find Users"/>
- </form>
- <script type="text/javascript">
- document.getElementById("uid").focus();
- </script>
- </div>
- <div py:if='(users != None) and (len(users) > 0)'>
- <h2>${len(users)} results returned:</h2>
- <table id="resultstable" class="details sortable resizable" cellspacing="0">
- <thead>
- <tr>
- <th>
- User
- </th>
- <th>
- Phone
- </th>
- <th>
- Unit
- </th>
- <th>
- Job Title
- </th>
- </tr>
- </thead>
- <tbody>
- <tr py:for="user in users" py:if="user.nsAccountLock != 'true'">
- <td>
- <a
- href="${tg.url('/user/show',uid=user.uid)}"
- py:content="u'%s %s (%s)' % (user.givenName, user.sn, user.uid)"
- />
- </td>
- <td>
- ${user.telephoneNumber}
- </td>
- <td>
- ${user.ou}
- </td>
- <td>
- ${user.title}
- </td>
- </tr>
- </tbody>
- <tbody>
- <tr id="inactive" py:for="user in users" py:if="user.nsAccountLock == 'true'">
- <td>
- <a
- href="${tg.url('/user/show',uid=user.uid)}"
- py:content="u'%s %s (%s)' % (user.givenName, user.sn, user.uid)"
- />
- </td>
- <td>
- ${user.telephoneNumber}
- </td>
- <td>
- ${user.ou}
- </td>
- <td>
- ${user.title}
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id="alertbox" py:if='(users != None) and (len(users) == 0)'>
- <p>No results found for "${uid}"</p>
- </div>
-
- <div class="instructions" py:if='users == None'>
- <p>
- Search automatically looks across multiple fields. If you want to find
- Joe in Finance, try typing "joe finance" into the search box.
- </p>
- <p>
- Exact matches are listed first, followed by partial matches. If your search
- is too broad, you will get a warning that the search returned too many
- results. Try being more specific.
- </p>
- <p>
- The results that come back are sortable. Simply click on a column
- header to sort on that header. A triangle will indicate the sorted
- column, along with its direction. Clicking and dragging between headers
- will allow you to resize the header.
- </p>
- </div>
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/usernew.kid b/ipa-server/ipa-gui/ipagui/templates/usernew.kid
deleted file mode 100644
index bbb74324..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/usernew.kid
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'userlayout.kid'">
-<head>
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
- <title>Add User</title>
-</head>
-<body>
- <h1 class="user">Add User</h1>
-
- ${form.display(action=tg.url("/user/create"), value=user)}
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/usernewform.kid b/ipa-server/ipa-gui/ipagui/templates/usernewform.kid
deleted file mode 100644
index cd924a72..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/usernewform.kid
+++ /dev/null
@@ -1,842 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#"
- class="simpleroster">
- <form action="${action}" name="${name}" method="${method}" class="tableform"
- onsubmit="preSubmit()">
-
-<input type="submit" class="submitbutton" name="submit" value="Add User"/>
-
-<?python
-from ipagui.helpers import ipahelper
-?>
-
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicedit.js')}"></script>
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/static/javascript/dynamicselect.js')}"></script>
- <script type="text/javascript" charset="utf-8"
- src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script>
-
- <?python
- searchurl = tg.url('/user/edit_search')
- selectSearchurl = tg.url('/user/user_select_search')
- ?>
-
- <script type="text/javascript">
- function doSearch() {
- $('searchresults').update("Searching...");
- new Ajax.Updater('searchresults',
- '${searchurl}',
- { asynchronous:true,
- parameters: { criteria: $('criteria').value },
- evalScripts: true });
- return false;
- }
-
- // override dynamicedit.js version
- // we don't need to show [group] nor italize groups
- function renderMemberInfo(newdiv, info) {
- if (info.type == "group") {
- newdiv.appendChild(document.createTextNode(
- info.name + " "));
- }
- }
- function doSelectSearch(which_select) {
- $(which_select + '_searchresults').update("Searching...");
- new Ajax.Updater(which_select + '_searchresults',
- '${selectSearchurl}',
- { asynchronous:true,
- parameters: { criteria: $(which_select + '_criteria').value,
- which_select: which_select},
- evalScripts: true });
- return false;
- }
- </script>
-
- <div py:for="field in hidden_fields"
- py:replace="field.display(value_for(field), **params_for(field))"
- />
-
- <h2 class="formsection">Identity Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.title.field_id}"
- py:content="user_fields.title.label" />:
- </th>
- <td>
- <span py:replace="user_fields.title.display(value_for(user_fields.title))" />
- <span py:if="tg.errors.get('title')" class="fielderror"
- py:content="tg.errors.get('title')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.givenname.field_id}"
- py:content="user_fields.givenname.label" />:
- </th>
- <td>
- <span py:replace="user_fields.givenname.display(value_for(user_fields.givenname))" />
- <span py:if="tg.errors.get('givenname')" class="fielderror"
- py:content="tg.errors.get('givenname')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.sn.field_id}"
- py:content="user_fields.sn.label" />:
- </th>
- <td>
- <span py:replace="user_fields.sn.display(value_for(user_fields.sn))" />
- <span py:if="tg.errors.get('sn')" class="fielderror"
- py:content="tg.errors.get('sn')" />
- <script type="text/javascript">
- var uid_suggest = "";
- var mail_suggest = "";
- var cn_suggest = "";
- var displayname_suggest = "";
- var initials_suggest = "";
-
- function autofill(self) {
- var givenname = $('form_givenname');
- var sn = $('form_sn');
- if ((givenname.value == "") || (sn.value == "")) {
- return;
- }
-
- var uid = $('form_uid');
- var mail = $('form_mail');
- var cn = $('form_cns_0_cn');
- var displayname = $('form_displayname');
- var initials = $('form_initials');
-
- if ((cn.value == "") || (cn.value == cn_suggest)) {
- cn.value = givenname.value + " " + sn.value;
- cn_suggest = cn.value;
- new Effect.Highlight(cn);
- }
-
- if ((displayname.value == "") ||
- (displayname.value == displayname_suggest)) {
- displayname.value = givenname.value + " " + sn.value;
- displayname_suggest = displayname.value;
- new Effect.Highlight(displayname);
- }
-
- if ((initials.value == "") ||
- (initials.value == initials_suggest)) {
- initials.value = givenname.value[0] + sn.value[0];
- initials_suggest = initials.value;
- new Effect.Highlight(initials);
- }
-
- if ((uid.value == "") || (uid.value == uid_suggest)) {
- new Ajax.Request('${tg.url('/user/suggest_uid')}', {
- method: 'get',
- parameters: {'givenname': givenname.value, 'sn': sn.value},
- onSuccess: function(transport) {
- uid.value = transport.responseText;
- uid_suggest = uid.value;
- new Effect.Highlight(uid);
- }
- });
- }
-
- if ((mail.value == "") || (mail.value == mail_suggest)) {
- new Ajax.Request('${tg.url('/user/suggest_email')}', {
- method: 'get',
- parameters: {'givenname': givenname.value, 'sn': sn.value},
- onSuccess: function(transport) {
- mail.value = transport.responseText;
- mail_suggest = mail.value;
- new Effect.Highlight(mail);
- }
- });
- }
- }
-
- document.getElementById('form_givenname').onchange = autofill;
- document.getElementById('form_sn').onchange = autofill;
- </script>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.cns.field_id}"
- py:content="user_fields.cns.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.cns.field_id}">
- <tbody>
- <?python repetition = 0
- cn_index = 0
- cn_error = tg.errors.get('cn')
- values = value_for(user_fields.cn)
- if values is None:
- values=['']
- ?>
- <tr py:for="cn in values"
- id="${user_fields.cns.field_id}_${repetition}"
- class="${user_fields.cns.field_class}">
-
- <td py:for="field in user_fields.cns.fields">
- <span><input class="textfield" type="text" id="${user_fields.cns.field_id}_${repetition}_cn" name="cns-${repetition}.cn" value="${cn}"/></span>
- <span py:if="cn_error and cn_error[cn_index]" class="fielderror"
- py:content="tg.errors.get('cn')" />
- </td>
- <?python cn_index = cn_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.cns.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.cns.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.cns.field_id}');">Add Full Name</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.displayname.field_id}"
- py:content="user_fields.displayname.label" />:
- </th>
- <td>
- <span py:replace="user_fields.displayname.display(value_for(user_fields.displayname))" />
- <span py:if="tg.errors.get('displayname')" class="fielderror"
- py:content="tg.errors.get('displayname')" />
-
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.initials.field_id}"
- py:content="user_fields.initials.label" />:
- </th>
- <td>
- <span py:replace="user_fields.initials.display(value_for(user_fields.initials))" />
- <span py:if="tg.errors.get('initials')" class="fielderror"
- py:content="tg.errors.get('initials')" />
-
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Account Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.nsAccountLock.field_id}"
- py:content="user_fields.nsAccountLock.label" />:
- </th>
- <td>
- <span py:replace="user_fields.nsAccountLock.display(value_for(user_fields.nsAccountLock))" />
- <span py:if="tg.errors.get('nsAccountLock')" class="fielderror"
- py:content="tg.errors.get('nsAccountLock')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.uid.field_id}"
- py:content="user_fields.uid.label" />:
- </th>
- <td>
- <span py:replace="user_fields.uid.display(value_for(user_fields.uid))" />
- <span py:if="tg.errors.get('uid')" class="fielderror"
- py:content="tg.errors.get('uid')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.krbprincipalkey.field_id}"
- py:content="user_fields.krbprincipalkey.label" />:
- </th>
- <td>
- <span py:replace="user_fields.krbprincipalkey.display(value_for(user_fields.krbprincipalkey))" />
- <span py:if="tg.errors.get('krbprincipalkey')" class="fielderror"
- py:content="tg.errors.get('krbprincipalkey')" />
-
- <!--
- <input type="button" value="Generate Password"
- onclick="new Ajax.Request('${tg.url('/user/generate_password')}',
- {
- method: 'get',
- onSuccess: function(transport) {
- document.getElementById('form_krbprincipalkey').value =
- transport.responseText;
- }
- });" />
- -->
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.krbprincipalkey_confirm.field_id}"
- py:content="user_fields.krbprincipalkey_confirm.label" />:
- </th>
- <td>
- <span py:replace="user_fields.krbprincipalkey_confirm.display(
- value_for(user_fields.krbprincipalkey_confirm))" />
- <span py:if="tg.errors.get('krbprincipalkey_confirm')" class="fielderror"
- py:content="tg.errors.get('krbprincipalkey_confirm')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.uidnumber.field_id}"
- py:content="user_fields.uidnumber.label" />:
- </th>
- <td>
- Generated by server
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.gidnumber.field_id}"
- py:content="user_fields.gidnumber.label" />:
- </th>
- <td>
- Generated by server
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.homedirectory.field_id}"
- py:content="user_fields.homedirectory.label" />:
- </th>
- <td>
- Generated by server
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.loginshell.field_id}"
- py:content="user_fields.loginshell.label" />:
- </th>
- <td>
- <span py:replace="user_fields.loginshell.display(
- value_for(user_fields.loginshell))" />
- <span py:if="tg.errors.get('loginshell')" class="fielderror"
- py:content="tg.errors.get('loginshell')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.gecos.field_id}"
- py:content="user_fields.gecos.label" />:
- </th>
- <td>
- <span py:replace="user_fields.gecos.display(
- value_for(user_fields.gecos))" />
- <span py:if="tg.errors.get('gecos')" class="fielderror"
- py:content="tg.errors.get('gecos')" />
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Contact Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.mail.field_id}"
- py:content="user_fields.mail.label" />:
- </th>
- <td>
- <span py:replace="user_fields.mail.display(value_for(user_fields.mail))" />
- <span py:if="tg.errors.get('mail')" class="fielderror"
- py:content="tg.errors.get('mail')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.telephonenumbers.field_id}"
- py:content="user_fields.telephonenumbers.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.telephonenumbers.field_id}">
- <tbody>
- <?python repetition = 0
- tele_index = 0
- tele_error = tg.errors.get('telephonenumber')
- values = value_for(user_fields.telephonenumber)
- if values is None:
- values=['']
- ?>
- <tr py:for="tele in values"
- id="${user_fields.telephonenumbers.field_id}_${repetition}"
- class="${user_fields.telephonenumbers.field_class}">
-
- <td py:if="user_fields.telephonenumbers.fields is not None" py:for="field in user_fields.telephonenumbers.fields">
- <span><input class="textfield" type="text" id="${user_fields.telephonenumbers.field_id}_${repetition}_telephonenumber" name="telephonenumbers-${repetition}.telephonenumber" value="${tele}"/></span>
- <span py:if="tele_error and tele_error[tele_index]" class="fielderror"
- py:content="tg.errors.get('telephonenumber')" />
- </td>
- <?python tele_index = tele_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.telephonenumbers.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.telephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.telephonenumbers.field_id}');">Add Work Number</a>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.facsimiletelephonenumbers.field_id}"
- py:content="user_fields.facsimiletelephonenumbers.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.facsimiletelephonenumbers.field_id}">
- <tbody>
- <?python repetition = 0
- fax_index = 0
- fax_error = tg.errors.get('facsimiletelephonenumber')
- values = value_for(user_fields.facsimiletelephonenumber)
- if values is None:
- values=['']
- ?>
- <tr py:for="fax in values"
- id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}"
- class="${user_fields.facsimiletelephonenumbers.field_class}">
-
- <td py:for="field in user_fields.facsimiletelephonenumbers.fields">
- <span><input class="textfield" type="text" id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}_facsimiletelephonenumber" name="facsimiletelephonenumbers-${repetition}.facsimiletelephonenumber" value="${fax}"/></span>
- <span py:if="fax_error and fax_error[fax_index]" class="fielderror"
- py:content="tg.errors.get('facsimiletelephonenumber')" />
- </td>
- <?python fax_index = fax_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.facsimiletelephonenumbers.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.facsimiletelephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.facsimiletelephonenumbers.field_id}');">Add Fax Number</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.mobiles.field_id}"
- py:content="user_fields.mobiles.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.mobiles.field_id}">
- <tbody>
- <?python repetition = 0
- mobile_index = 0
- mobile_error = tg.errors.get('mobile')
- values = value_for(user_fields.mobile)
- if values is None:
- values=['']
- ?>
- <tr py:for="mobile in values"
- id="${user_fields.mobiles.field_id}_${repetition}"
- class="${user_fields.mobiles.field_class}">
-
- <td py:for="field in user_fields.mobiles.fields">
- <span><input class="textfield" type="text" id="${user_fields.mobiles.field_id}_${repetition}_mobile" name="mobiles-${repetition}.mobile" value="${mobile}"/></span>
- <span py:if="mobile_error and mobile_error[mobile_index]" class="fielderror"
- py:content="tg.errors.get('mobile')" />
- </td>
- <?python mobile_index = mobile_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.mobiles.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.mobiles.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.mobiles.field_id}');">Add Cell Number</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.pagers.field_id}"
- py:content="user_fields.pagers.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.pagers.field_id}">
- <tbody>
- <?python repetition = 0
- pager_index = 0
- pager_error = tg.errors.get('pager')
- values = value_for(user_fields.pager)
- if values is None:
- values=['']
- ?>
- <tr py:for="pager in values"
- id="${user_fields.pagers.field_id}_${repetition}"
- class="${user_fields.pagers.field_class}">
-
- <td py:for="field in user_fields.pagers.fields">
- <span><input class="textfield" type="text" id="${user_fields.pagers.field_id}_${repetition}_pager" name="pagers-${repetition}.pager" value="${pager}"/></span>
- <span py:if="pager_error and pager_error[pager_index]" class="fielderror"
- py:content="tg.errors.get('pager')" />
- </td>
- <?python pager_index = pager_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.pagers.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.pagers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.pagers.field_id}');">Add Pager Number</a>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.homephones.field_id}"
- py:content="user_fields.homephones.label" />:
- </th>
- <td colspan="3">
- <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.homephones.field_id}">
- <tbody>
- <?python repetition = 0
- homephone_index = 0
- homephone_error = tg.errors.get('homephone')
- values = value_for(user_fields.homephone)
- if values is None:
- values=['']
- ?>
- <tr py:for="homephone in values"
- id="${user_fields.homephones.field_id}_${repetition}"
- class="${user_fields.homephones.field_class}">
-
- <td py:for="field in user_fields.homephones.fields">
- <span><input class="textfield" type="text" id="${user_fields.homephones.field_id}_${repetition}_homephone" name="homephones-${repetition}.homephone" value="${homephone}"/></span>
- <span py:if="homephone_error and homephone_error[homephone_index]" class="fielderror"
- py:content="tg.errors.get('homephone')" />
- </td>
- <?python homephone_index = homephone_index + 1 ?>
- <td>
- <a
- href="javascript:ExpandingForm.removeItem('${user_fields.homephones.field_id}_${repetition}')">Remove</a>
- </td>
- <?python repetition = repetition + 1?>
- </tr>
- </tbody>
- </table>
- <a id="${user_fields.homephones.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.homephones.field_id}');">Add Home Phone</a>
- </td>
- </tr>
-
- </table>
-
- <h2 class="formsection">Mailing Address</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.street.field_id}"
- py:content="user_fields.street.label" />:
- </th>
- <td>
- <span py:replace="user_fields.street.display(value_for(user_fields.street))" />
- <span py:if="tg.errors.get('street')" class="fielderror"
- py:content="tg.errors.get('street')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.roomnumber.field_id}"
- py:content="user_fields.roomnumber.label" />:
- </th>
- <td>
- <span py:replace="user_fields.roomnumber.display(value_for(user_fields.roomnumber))" />
- <span py:if="tg.errors.get('roomnumber')" class="fielderror"
- py:content="tg.errors.get('roomnumber')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.l.field_id}"
- py:content="user_fields.l.label" />:
- </th>
- <td>
- <span py:replace="user_fields.l.display(value_for(user_fields.l))" />
- <span py:if="tg.errors.get('l')" class="fielderror"
- py:content="tg.errors.get('l')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.st.field_id}"
- py:content="user_fields.st.label" />:
- </th>
- <td>
- <span py:replace="user_fields.st.display(value_for(user_fields.st))" />
- <span py:if="tg.errors.get('st')" class="fielderror"
- py:content="tg.errors.get('st')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.postalcode.field_id}"
- py:content="user_fields.postalcode.label" />:
- </th>
- <td>
- <span py:replace="user_fields.postalcode.display(value_for(user_fields.postalcode))" />
- <span py:if="tg.errors.get('postalcode')" class="fielderror"
- py:content="tg.errors.get('postalcode')" />
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Employee Information</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.ou.field_id}"
- py:content="user_fields.ou.label" />:
- </th>
- <td>
- <span py:replace="user_fields.ou.display(value_for(user_fields.ou))" />
- <span py:if="tg.errors.get('ou')" class="fielderror"
- py:content="tg.errors.get('ou')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.businesscategory.field_id}"
- py:content="user_fields.businesscategory.label" />:
- </th>
- <td>
- <span py:replace="user_fields.businesscategory.display(value_for(user_fields.businesscategory))" />
- <span py:if="tg.errors.get('businesscategory')" class="fielderror"
- py:content="tg.errors.get('businesscategory')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.description.field_id}"
- py:content="user_fields.description.label" />:
- </th>
- <td>
- <span py:replace="user_fields.description.display(value_for(user_fields.description))" />
- <span py:if="tg.errors.get('description')" class="fielderror"
- py:content="tg.errors.get('description')" />
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.employeetype.field_id}"
- py:content="user_fields.employeetype.label" />:
- </th>
- <td>
- <span py:replace="user_fields.employeetype.display(value_for(user_fields.employeetype))" />
- <span py:if="tg.errors.get('employeetype')" class="fielderror"
- py:content="tg.errors.get('employeetype')" />
- </td>
- </tr>
-
- <tr>
- <th valign="top">
- <label class="fieldlabel" for="${user_fields.manager.field_id}"
- py:content="user_fields.manager.label" />:
- </th>
- <td valign="top">
- <div>
- <span id='manager_select_cn'>${value_for(user_fields.manager)}</span>
- <span id='manager_links'>
- <a href="#" onclick="return clearSelect('manager');">clear</a>
- <a href="#" onclick="return startSelect('manager');">change</a>
- </span>
- <span py:if="tg.errors.get('manager')" class="fielderror"
- py:content="tg.errors.get('manager')" />
- </div>
- <div id="manager_searcharea" style="display:none">
- <div>
- <input id="manager_criteria" type="text"
- onkeypress="return enterDoSelectSearch(event, 'manager');" />
- <input type="button" value="Find"
- onclick="return doSelectSearch('manager');"
- />
- </div>
- <div id="manager_searchresults">
- </div>
- </div>
- </td>
- </tr>
-
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.secretary.field_id}"
- py:content="user_fields.secretary.label" />:
- </th>
- <td>
- <div>
- <span id='secretary_select_cn'>${value_for(user_fields.secretary)}</span>
- <span id='secretary_links'>
- <a href="#" onclick="return clearSelect('secretary');">clear</a>
- <a href="#" onclick="return startSelect('secretary');">change</a>
- </span>
- <span py:if="tg.errors.get('secretary')" class="fielderror"
- py:content="tg.errors.get('secretary')" />
- </div>
- <div id="secretary_searcharea" style="display:none">
- <div>
- <input id="secretary_criteria" type="text"
- onkeypress="return enterDoSelectSearch(event, 'secretary');" />
- <input type="button" value="Find"
- onclick="return doSelectSearch('secretary');"
- />
- </div>
- <div id="secretary_searchresults">
- </div>
- </div>
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Misc Information</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.carlicense.field_id}"
- py:content="user_fields.carlicense.label" />:
- </th>
- <td>
- <span py:replace="user_fields.carlicense.display(value_for(user_fields.carlicense))" />
- <span py:if="tg.errors.get('carlicense')" class="fielderror"
- py:content="tg.errors.get('carlicense')" />
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" for="${user_fields.labeleduri.field_id}"
- py:content="user_fields.labeleduri.label" />:
- </th>
- <td>
- <span py:replace="user_fields.labeleduri.display(value_for(user_fields.labeleduri))" />
- <span py:if="tg.errors.get('labeleduri')" class="fielderror"
- py:content="tg.errors.get('labeleduri')" />
- </td>
- </tr>
- </table>
-
- <div py:if='len(custom_fields) &gt; 0'>
- <div class="formsection" >Custom Fields</div>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr py:for='custom_field in custom_fields'>
- <th>
- <label class="fieldlabel" for="${custom_field.field_id}"
- py:content="custom_field.label" />:
- </th>
- <td>
- <span py:replace="custom_field.display(value_for(custom_field))" />
- <span py:if="tg.errors.get(custom_field.name)" class="fielderror"
- py:content="tg.errors.get(custom_field.name)" />
- </td>
- </tr>
- </table>
- </div>
-
- <div style="clear:both">
- <h2 class="formsection">Add Groups</h2>
-
-
- <div class="floatlist">
- <div class="floatheader">To Add:</div>
- <div id="newmembers">
- </div>
- </div>
-
- <div>
- <div id="search">
- <input id="criteria" type="text" name="criteria"
- onkeypress="return enterDoSearch(event);" />
- <input class="searchbutton" type="button" value="Find"
- onclick="return doSearch();"
- />
- </div>
- <div id="searchresults">
- </div>
- </div>
- </div>
-
-<hr />
-<input type="submit" class="submitbutton" name="submit" value="Add User"/>
-
- </form>
-
- <script type="text/javascript">
- document.getElementById("form_title").focus();
- </script>
-
- <script type="text/javascript">
- /*
- * This section restores the contents of the add and remove lists
- * dynamically if we have to refresh the page
- */
- if ($('form_dn_to_info_json').value != "") {
- dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON());
- }
- </script>
-
- <?python
- dnadds = value.get('dnadd', [])
- if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)):
- dnadds = [dnadds]
- ?>
-
- <script py:for="dnadd in dnadds">
- <?python
- dnadd_esc = ipahelper.javascript_string_escape(dnadd)
- ?>
- var dn = "${dnadd_esc}";
- var info = dn_to_info_hash[dn];
- var newdiv = addmember(dn, info);
- if (newdiv != null) {
- newdiv.style.display = 'block';
- }
- </script>
-
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid b/ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid
deleted file mode 100644
index b8a60ed5..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<div xmlns:py="http://purl.org/kid/ns#">
-
-<?python
-from ipagui.helpers import ipahelper
-?>
- <div py:if='(users != None) and (len(users) > 0)'>
- <div id="search-results-count">
- ${len(users)} results returned:
- <span py:if="counter &lt; 0">
- (truncated)
- </span>
- </div>
-
- <div py:for="user in users">
- <?python
- user_name = "%s %s" % (user.getValue('givenName', ''),
- user.getValue('sn', ''))
- user_descr = "(%s)" % user.uid
-
- user_dn_esc = ipahelper.javascript_string_escape(user.dn)
- user_name_esc = ipahelper.javascript_string_escape(user_name)
- user_descr_esc = ipahelper.javascript_string_escape(user_descr)
- which_select_esc = ipahelper.javascript_string_escape(which_select)
- ?>
-
- ${user_name} ${user_descr}
- <a href=""
- onclick="doSelect('${which_select_esc}', '${user_dn_esc}', '${user_name_esc}');
- return false;"
- >select</a>
- </div>
- </div>
- <div py:if='(users != None) and (len(users) == 0)'>
- No results found for "${criteria}"
- </div>
-</div>
diff --git a/ipa-server/ipa-gui/ipagui/templates/usershow.kid b/ipa-server/ipa-gui/ipagui/templates/usershow.kid
deleted file mode 100644
index 0c2582b2..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/usershow.kid
+++ /dev/null
@@ -1,399 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'userlayout.kid'">
-<head>
- <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
- <title>View User</title>
-</head>
-<body>
-<?python
-edit_url = tg.url('/user/edit', uid=user.get('uid'))
-?>
- <h1 class="user">View User</h1>
-
- <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name == user.get('uid')"
- class="submitbutton" type="button"
- onclick="document.location.href='${edit_url}'"
- value="Edit User" />
-
-<?python
-from ipagui.helpers import userhelper
-pw_expires_days = userhelper.password_expires_in(user.get("krbPasswordExpiration"))
-pw_expires_soon = userhelper.password_expires_soon(pw_expires_days)
-pw_is_expired = userhelper.password_is_expired(pw_expires_days)
-if pw_expires_days != 1:
- days_suffix = "s"
-else:
- days_suffix = ""
-?>
-
- <div id="alertbox" py:if='pw_expires_soon' class="warning_message">
- ${user.get("uid")}'s password will expire in ${pw_expires_days} day${days_suffix}
- </div>
- <div id="alertbox" py:if='pw_is_expired' class="warning_message">
- ${user.get("uid")}'s password has expired
- </div>
-
- <h2 class="formsection">Identity Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.title.label" />:
- </th>
- <td>${user.get("title")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.givenname.label" />:
- </th>
- <td>${user.get("givenname")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.sn.label" />:
- </th>
- <td>${user.get("sn")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.cn.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = user.get("cn")
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.displayname.label" />:
- </th>
- <td>${user.get("displayname")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.initials.label" />:
- </th>
- <td>${user.get("initials")}</td>
- </tr>
- </table>
-
- <h2 class="formsection">Account Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.nsAccountLock.label" />:
- </th>
- <td>${userhelper.account_status_display(user.get("nsAccountLock"))}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.uid.label" />:
- </th>
- <td>${user.get("uid")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.uidnumber.label" />:
- </th>
- <td>${user.get("uidnumber")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.gidnumber.label" />:
- </th>
- <td>${user.get("gidnumber")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.homedirectory.label" />:
- </th>
- <td>${user.get("homedirectory")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.loginshell.label" />:
- </th>
- <td>${user.get("loginshell")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.gecos.label" />:
- </th>
- <td>${user.get("gecos")}</td>
- </tr>
- </table>
-
- <h2 class="formsection">Contact Details</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.mail.label" />:
- </th>
- <td><a py:if="user.get('mail')"
- href="mailto:${user.get('mail')}">${user.get("mail")}</a></td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.telephonenumber.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = user.get("telephonenumber", '')
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.facsimiletelephonenumber.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = user.get("facsimiletelephonenumber", '')
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.mobile.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = user.get("mobile", '')
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.pager.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = user.get("pager", '')
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.homephone.label" />:
- </th>
- <td>
- <table cellpadding="2" cellspacing="0" border="0">
- <tbody>
- <?python
- index = 0
- values = user.get("homephone", '')
- if isinstance(values, str):
- values = [values]
- ?>
- <tr py:for="index in range(len(values))">
- <td>${values[index]}</td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Mailing Address</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.street.label" />:
- </th>
- <td>${user.get("street")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.roomnumber.label" />:
- </th>
- <td>${user.get("roomnumber")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.l.label" />:
- </th>
- <td>${user.get("l")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.st.label" />:
- </th>
- <td>${user.get("st")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.postalcode.label" />:
- </th>
- <td>${user.get("postalcode")}</td>
- </tr>
- </table>
-
- <h2 class="formsection">Employee Information</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.ou.label" />:
- </th>
- <td>${user.get("ou")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.businesscategory.label" />:
- </th>
- <td>${user.get("businesscategory")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.description.label" />:
- </th>
- <td>${user.get("description")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.employeetype.label" />:
- </th>
- <td>${user.get("employeetype")}</td>
- </tr>
- <tr py:if='user_manager'>
- <th>
- <label class="fieldlabel" py:content="fields.manager.label" />:
- </th>
- <td>
- <a href="${tg.url('/user/show', uid=user_manager.uid)}"
- >${user_manager.givenname} ${user_manager.sn}</a>
- </td>
- </tr>
- <tr py:if='user_secretary'>
- <th>
- <label class="fieldlabel" py:content="fields.secretary.label" />:
- </th>
- <td>
- <a href="${tg.url('/user/show', uid=user_secretary.uid)}"
- >${user_secretary.givenname} ${user_secretary.sn}</a>
- </td>
- </tr>
- </table>
-
- <h2 class="formsection">Misc Information</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.carlicense.label" />:
- </th>
- <td>${user.get("carlicense")}</td>
- </tr>
- <tr>
- <th>
- <label class="fieldlabel" py:content="fields.labeleduri.label" />:
- </th>
- <td>
- <a py:if="user.get('labeleduri')"
- href="${user.get('labeleduri')}">${user.get('labeleduri')}</a>
- </td>
- </tr>
- </table>
-
- <div py:if='len(fields.custom_fields) &gt; 0'>
- <h2 class="formsection">Custom Fields</h2>
- <table class="formtable" cellpadding="2" cellspacing="0" border="0">
- <tr py:for='custom_field in fields.custom_fields'>
- <th>
- <label class="fieldlabel" for="${custom_field.field_id}"
- py:content="custom_field.label" />:
- </th>
- <td>
- ${user.get(custom_field.name)}
- </td>
- </tr>
- </table>
- </div>
-
- <h2 class="formsection" py:if='len(user_reports) &gt; 0'>Direct Reports</h2>
- <ol py:if="len(user_reports) &gt; 0">
- <li py:for="report in user_reports">
- <a href="${tg.url('/user/show', uid=report.uid)}"
- >${report.givenname} ${report.sn}</a>
- </li>
- </ol>
-
- <h2 class="formsection">Groups</h2>
- <div py:for="group in user_groups">
- <a href="${tg.url('/group/show', cn=group.cn)}">${group.cn}</a>
- </div>
-
- <br/>
-<hr />
- <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name == user.get('uid')"
- class="submitbutton" type="button"
- onclick="document.location.href='${edit_url}'"
- value="Edit User" />
-</body>
-</html>
diff --git a/ipa-server/ipa-gui/ipagui/templates/welcome.kid b/ipa-server/ipa-gui/ipagui/templates/welcome.kid
deleted file mode 100644
index ce3b444c..00000000
--- a/ipa-server/ipa-gui/ipagui/templates/welcome.kid
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
- Copyright (C) 2007 Red Hat
- see file 'COPYING' for use and warranty information
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; version 2 only
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#"
- py:extends="'master.kid'">
-<head>
-<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/>
-<title>Welcome</title>
-</head>
-<body>
- <div id="details">
- <div id="alertbox" py:if="value_of('tg_flash', None)">
- <p py:content="XML(tg_flash)"></p></div>
- <h1>Welcome to Free IPA</h1>
-
- <noscript>
- <span class="warning_message">
- This site makes heavy use of JavaScript.<br />
- Please enable JavaScript in your browser to make sure all pages function properly.
- </span>
- </noscript>
-
- <p>
-IPA is used to manage Identity, Policy, and Auditing for your organization.
- </p>
- <p>
- To get started, you can use the search box in the top right to find
- users or groups you need to work on. Search automatically looks
- across multiple fields. If you want to find Joe in Finance, try typing
- "joe finance" into the search box.
- </p>
- <p>
- Alternatively, select a task from the right sidebar.
- </p>
- </div>
-
-</body>
-</html>