/** * Display form elements to bind project members and an LDAP group * * @param array $params * * @return void */ function project_admin_add_user_form(array $params) { if ($this->isLDAPGroupsUsageEnabled()) { $projectMembersManager = new LDAP_ProjectGroupManager($this->getLdap()); $ldapGroup = $projectMembersManager->getLdapGroupByGroupId($params['groupId']); if ($ldapGroup) { $groupName = $ldapGroup->getCommonName(); } else { $groupName = ''; } $html = '<hr />' . PHP_EOL; $html .= '<form method="post" class="link-with-ldap" action="' . $this->getPluginPath() . '/admin.php?group_id=' . $params['groupId'] . '">' . PHP_EOL; $html .= '<div class="control-group"> <label class="control-label" for="add_user">' . $GLOBALS['Language']->getText('plugin_ldap', 'project_admin_add_ugroup') . '</label> <div class="controls"> <input type="text" value="' . $groupName . '" name="ldap_group" id="project_admin_add_ldap_group" size="60" /> </div> </div>'; $html .= '<label class="checkbox" for="preserve_members"><input type="checkbox" id="preserve_members" name="preserve_members" checked="checked" />' . $GLOBALS['Language']->getText('plugin_ldap', 'ugroup_edit_group_preserve_members_option') . ' (' . $GLOBALS['Language']->getText('plugin_ldap', 'ugroup_edit_group_preserve_members_info') . ')</label>' . PHP_EOL; $html .= '<br />' . PHP_EOL; $html .= '<input type="submit" name="delete" value="' . $GLOBALS['Language']->getText('global', 'btn_delete') . '" />' . PHP_EOL; $html .= '<input type="submit" name="check" value="' . $GLOBALS['Language']->getText('global', 'btn_update') . '" />' . PHP_EOL; $html .= '</form>' . PHP_EOL; $GLOBALS['Response']->includeFooterJavascriptFile($this->getPluginPath() . '/scripts/autocomplete.js'); $js = "new LdapGroupAutoCompleter('project_admin_add_ldap_group',\n '" . $this->getPluginPath() . "',\n '" . util_get_dir_image_theme() . "',\n 'project_admin_add_ldap_group',\n false);"; $GLOBALS['Response']->includeFooterJavascriptSnippet($js); echo $html; } }
// Ensure LDAP plugin is active $pluginManager = PluginManager::instance(); $ldapPlugin = $pluginManager->getPluginByName('ldap'); if (!$ldapPlugin || !$pluginManager->isPluginAvailable($ldapPlugin)) { $GLOBALS['Response']->redirect('/project/admin/index.php?group_id=' . $groupId); } // Check if user have choosen the preserve members option. $bindOption = 'bind'; if ($request->exist('preserve_members') && $request->get('preserve_members') == 'on') { $bindOption = 'preserve_members'; } // Get LDAP group name $vLdapGroup = new Valid_String('ldap_group'); $vLdapGroup->required(); if ($request->isPost() && $request->valid($vLdapGroup)) { $ldapGroupManager = new LDAP_ProjectGroupManager($ldapPlugin->getLdap()); $ldapGroupManager->setId($groupId); $ldapGroupManager->setGroupName($request->get('ldap_group')); if ($request->existAndNonEmpty('delete')) { // // Remove link between Project Members and LDAP Group // $ldapGroupManager->unbindFromBindLdap(); $GLOBALS['Response']->redirect('/project/admin/index.php?group_id=' . $groupId); } elseif ($request->existAndNonEmpty('update')) { // // Perform Project Members <-> LDAP Group synchro // $ldapGroupManager->bindWithLdap($bindOption); $GLOBALS['Response']->redirect('/project/admin/index.php?group_id=' . $groupId); } elseif ($request->exist('cancel')) {