Ejemplo n.º 1
0
 /**
  * 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;
     }
 }
Ejemplo n.º 2
0
// 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')) {