Commit 5bd1075014c1881e63bd4e40b895bbacfe8a6ee0
1 parent
847acbe2
Pass the authentication provider and source into the edit template,
allowing for authentication information to be displayed and ultimately editing through the user management system. git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@4190 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
54 additions
and
54 deletions
presentation/lookAndFeel/knowledgeTree/administration/usermanagement/userManagement.php
| ... | ... | @@ -11,10 +11,14 @@ require_once(KT_LIB_DIR . "/dispatcher.inc.php"); |
| 11 | 11 | require_once(KT_LIB_DIR . "/templating/kt3template.inc.php"); |
| 12 | 12 | require_once(KT_LIB_DIR . "/widgets/fieldWidgets.php"); |
| 13 | 13 | |
| 14 | +require_once(KT_LIB_DIR . "/authentication/authenticationsource.inc.php"); | |
| 15 | +require_once(KT_LIB_DIR . "/authentication/authenticationproviderregistry.inc.php"); | |
| 16 | +require_once(KT_LIB_DIR . "/authentication/builtinauthenticationprovider.inc.php"); | |
| 17 | + | |
| 14 | 18 | class KTUserAdminDispatcher extends KTAdminDispatcher { |
| 15 | 19 | // Breadcrumbs base - added to in methods |
| 16 | 20 | var $aBreadcrumbs = array( |
| 17 | - array('action' => 'administration', 'name' => 'Administration'), | |
| 21 | + array('action' => 'administration', 'name' => 'Administration'), | |
| 18 | 22 | ); |
| 19 | 23 | |
| 20 | 24 | function do_main() { |
| ... | ... | @@ -71,13 +75,6 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { |
| 71 | 75 | // nice, easy bits. |
| 72 | 76 | $add_fields[] = new KTStringWidget('Mobile Number','The mobile phone number of the user. If the system is configured to send notifications to cellphones, then this number will be SMS\'d with notifications. e.g. <strong>999 9999 999</strong>', 'mobile_number', null, $this->oPage, false); |
| 73 | 77 | $add_fields[] = new KTStringWidget('Maximum Sessions','As a safety precaution, it is useful to limit the number of times a given account can log in, before logging out. This prevents a single account being used by many different people.', 'max_sessions', '3', $this->oPage, true); |
| 74 | - // FIXME handle group search stuff. | |
| 75 | - $search_results = null; | |
| 76 | - if (!empty($name)) { | |
| 77 | - $search_results =& User::getList('WHERE username LIKE "%' . DBUtil::escapeSimple($name) . '%"'); | |
| 78 | - } else if ($show_all !== false) { | |
| 79 | - $search_results =& User::getList(); | |
| 80 | - } | |
| 81 | 78 | |
| 82 | 79 | $oTemplating = new KTTemplating; |
| 83 | 80 | $oTemplate = $oTemplating->loadTemplate("ktcore/principals/adduser"); |
| ... | ... | @@ -91,50 +88,53 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { |
| 91 | 88 | |
| 92 | 89 | |
| 93 | 90 | function do_editUser() { |
| 94 | - $this->aBreadcrumbs[] = array('action' => 'userManagement', 'name' => 'User Management'); | |
| 95 | - $this->oPage->setBreadcrumbDetails('modify user details'); | |
| 96 | - $this->oPage->setTitle("Modify User Details"); | |
| 97 | - | |
| 98 | - $name = KTUtil::arrayGet($_REQUEST, 'name'); | |
| 99 | - $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', false); | |
| 100 | - $add_user = KTUtil::arrayGet($_REQUEST, 'add_user', false); | |
| 101 | - if ($add_user !== false) { $add_user = true; } | |
| 102 | - $edit_user = KTUtil::arrayGet($_REQUEST, 'edit_user', false); | |
| 103 | - $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | |
| 104 | - | |
| 105 | - $oUser =& User::get($user_id); | |
| 106 | - | |
| 107 | - if (PEAR::isError($oUser) || $oUser == false) { | |
| 108 | - $this->errorRedirectToMain('Please select a user first.'); | |
| 109 | - exit(0); | |
| 110 | - } | |
| 111 | - | |
| 112 | - $this->aBreadcrumbs[] = array('name' => $oUser->getName()); | |
| 113 | - | |
| 114 | - $edit_fields = array(); | |
| 115 | - $edit_fields[] = new KTStringWidget('Username','The username the user will enter to gain access to the KnowledgeTree. e.g. <strong>jsmith</strong>', 'username', $oUser->getUsername(), $this->oPage, true); | |
| 116 | - $edit_fields[] = new KTStringWidget('Name','The full name of the user. This is shown in reports and listings. e.g. <strong>John Smith</strong>', 'name', $oUser->getName(), $this->oPage, true); | |
| 117 | - $edit_fields[] = new KTStringWidget('Email Address','The email address of the user. Notifications and alerts are mailed to this address if <strong>email notifications</strong> is set below. e.g. <strong>jsmith@acme.com</strong>', 'email_address', $oUser->getEmail(), $this->oPage, false); | |
| 118 | - $edit_fields[] = new KTCheckboxWidget('Email Notifications','If this is specified then the user will have notifications sent to the email address entered above. If it isn\'t set, then the user will only see notifications on the <strong>Dashboard</strong>', 'email_notifications', $oUser->getEmailNotification(), $this->oPage, false); | |
| 119 | - $edit_fields[] = new KTStringWidget('Mobile Number','The mobile phone number of the user. If the system is configured to send notifications to cellphones, then this number will be SMS\'d with notifications. e.g. <strong>999 9999 999</strong>', 'mobile_number', $oUser->getMobile(), $this->oPage, false); | |
| 120 | - $edit_fields[] = new KTStringWidget('Maximum Sessions','As a safety precaution, it is useful to limit the number of times a given account can log in, before logging out. This prevents a single account being used by many different people.', 'max_sessions', $oUser->getMaxSessions(), $this->oPage, true); | |
| 121 | - | |
| 122 | - // FIXME handle group search stuff. | |
| 123 | - $search_results = null; | |
| 124 | - if (!empty($name)) { | |
| 125 | - $search_results =& User::getList('WHERE username LIKE "%' . DBUtil::escapeSimple($name) . '%"'); | |
| 126 | - } else if ($show_all !== false) { | |
| 127 | - $search_results =& User::getList(); | |
| 128 | - } | |
| 129 | - | |
| 130 | - $oTemplating = new KTTemplating; | |
| 131 | - $oTemplate = $oTemplating->loadTemplate("ktcore/principals/edituser"); | |
| 132 | - $aTemplateData = array( | |
| 133 | - "context" => $this, | |
| 134 | - "edit_fields" => $edit_fields, | |
| 135 | - "edit_user" => $oUser, | |
| 136 | - ); | |
| 137 | - return $oTemplate->render($aTemplateData); | |
| 91 | + $this->aBreadcrumbs[] = array('action' => 'userManagement', 'name' => 'User Management'); | |
| 92 | + $this->oPage->setBreadcrumbDetails('modify user details'); | |
| 93 | + $this->oPage->setTitle("Modify User Details"); | |
| 94 | + | |
| 95 | + $name = KTUtil::arrayGet($_REQUEST, 'name'); | |
| 96 | + $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', false); | |
| 97 | + $add_user = KTUtil::arrayGet($_REQUEST, 'add_user', false); | |
| 98 | + if ($add_user !== false) { $add_user = true; } | |
| 99 | + $edit_user = KTUtil::arrayGet($_REQUEST, 'edit_user', false); | |
| 100 | + $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | |
| 101 | + | |
| 102 | + $oUser =& User::get($user_id); | |
| 103 | + | |
| 104 | + if (PEAR::isError($oUser) || $oUser == false) { | |
| 105 | + $this->errorRedirectToMain('Please select a user first.'); | |
| 106 | + exit(0); | |
| 107 | + } | |
| 108 | + | |
| 109 | + $this->aBreadcrumbs[] = array('name' => $oUser->getName()); | |
| 110 | + | |
| 111 | + $edit_fields = array(); | |
| 112 | + $edit_fields[] = new KTStringWidget('Username','The username the user will enter to gain access to the KnowledgeTree. e.g. <strong>jsmith</strong>', 'username', $oUser->getUsername(), $this->oPage, true); | |
| 113 | + $edit_fields[] = new KTStringWidget('Name','The full name of the user. This is shown in reports and listings. e.g. <strong>John Smith</strong>', 'name', $oUser->getName(), $this->oPage, true); | |
| 114 | + $edit_fields[] = new KTStringWidget('Email Address','The email address of the user. Notifications and alerts are mailed to this address if <strong>email notifications</strong> is set below. e.g. <strong>jsmith@acme.com</strong>', 'email_address', $oUser->getEmail(), $this->oPage, false); | |
| 115 | + $edit_fields[] = new KTCheckboxWidget('Email Notifications','If this is specified then the user will have notifications sent to the email address entered above. If it isn\'t set, then the user will only see notifications on the <strong>Dashboard</strong>', 'email_notifications', $oUser->getEmailNotification(), $this->oPage, false); | |
| 116 | + $edit_fields[] = new KTStringWidget('Mobile Number','The mobile phone number of the user. If the system is configured to send notifications to cellphones, then this number will be SMS\'d with notifications. e.g. <strong>999 9999 999</strong>', 'mobile_number', $oUser->getMobile(), $this->oPage, false); | |
| 117 | + $edit_fields[] = new KTStringWidget('Maximum Sessions','As a safety precaution, it is useful to limit the number of times a given account can log in, before logging out. This prevents a single account being used by many different people.', 'max_sessions', $oUser->getMaxSessions(), $this->oPage, true); | |
| 118 | + | |
| 119 | + $oAuthenticationSource = KTAuthenticationSource::getForUser($oUser); | |
| 120 | + if (is_null($oAuthenticationSource)) { | |
| 121 | + $oProvider =& new KTBuiltinAuthenticationProvider; | |
| 122 | + } else { | |
| 123 | + $sProvider = $oAuthenticationSource->getAuthenticationProvider(); | |
| 124 | + $oRegistry =& KTAuthenticationProviderRegistry::getSingleton(); | |
| 125 | + $oProvider = $oRegistry->getAuthenticationProvider($sProvider); | |
| 126 | + } | |
| 127 | + | |
| 128 | + $oTemplating = new KTTemplating; | |
| 129 | + $oTemplate = $oTemplating->loadTemplate("ktcore/principals/edituser"); | |
| 130 | + $aTemplateData = array( | |
| 131 | + "context" => $this, | |
| 132 | + "edit_fields" => $edit_fields, | |
| 133 | + "edit_user" => $oUser, | |
| 134 | + "provider" => $oProvider, | |
| 135 | + "source" => $oAuthenticationSource, | |
| 136 | + ); | |
| 137 | + return $oTemplate->render($aTemplateData); | |
| 138 | 138 | } |
| 139 | 139 | |
| 140 | 140 | function do_editgroups() { |
| ... | ... | @@ -292,7 +292,7 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { |
| 292 | 292 | $oUser = User::get($user_id); |
| 293 | 293 | if ((PEAR::isError($oUser)) || ($oUser === false)) { |
| 294 | 294 | $this->errorRedirectToMain('Please select a user first.'); |
| 295 | - } | |
| 295 | + } | |
| 296 | 296 | $groupAdded = KTUtil::arrayGet($_REQUEST, 'groupAdded',''); |
| 297 | 297 | $groupRemoved = KTUtil::arrayGet($_REQUEST, 'groupRemoved',''); |
| 298 | 298 | |
| ... | ... | @@ -324,7 +324,7 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { |
| 324 | 324 | $oGroup = Group::get($iGroupID); |
| 325 | 325 | $res = $oGroup->removeMember($oUser); |
| 326 | 326 | if (PEAR::isError($res) || $res == false) { |
| 327 | - $this->errorRedirectToMain('Unable to remove user from "' . $oGroup->getName() . '"'); | |
| 327 | + $this->errorRedirectToMain('Unable to remove user from "' . $oGroup->getName() . '"'); | |
| 328 | 328 | } else { $groupsRemoved[] = $oGroup->getName(); } |
| 329 | 329 | } |
| 330 | 330 | } | ... | ... |