Exemplo n.º 1
0
 /**
  *  Form for adding and choosing default authorization scripts
  */
 public static function authorizationSetup()
 {
     $template = array();
     PHPWS_Core::initCoreClass('File.php');
     $auth_list = User_Action::getAuthorizationList();
     $db = new PHPWS_DB('users_groups');
     $db->addOrder('name');
     $db->addColumn('name');
     $db->addColumn('id');
     $db->setIndexBy('id');
     $db->addWhere('user_id', 0);
     $groups = $db->select('col');
     if (PHPWS_Error::logIfError($groups)) {
         $groups = array(0 => dgettext('users', '- None -'));
     } else {
         $groups = array("0" => dgettext('users', '- None -')) + $groups;
     }
     foreach ($auth_list as $auth) {
         $file_compare[] = $auth['filename'];
     }
     $form = new PHPWS_Form();
     $form->addHidden('module', 'users');
     $form->addHidden('action', 'admin');
     $form->addHidden('command', 'postAuthorization');
     $file_list = PHPWS_File::readDirectory(PHPWS_SOURCE_DIR . 'mod/users/scripts/', FALSE, TRUE, FALSE, array('php'));
     if (!empty($file_list)) {
         $remaining_files = array_diff($file_list, $file_compare);
     } else {
         $remaining_files = NULL;
     }
     if (empty($remaining_files)) {
         $template['FILE_LIST'] = dgettext('users', 'No new scripts found');
     } else {
         $form->addSelect('file_list', $remaining_files);
         $form->reindexValue('file_list');
         $form->addSubmit('add_script', dgettext('users', 'Add Script File'));
     }
     $form->mergeTemplate($template);
     $form->addSubmit('submit', dgettext('users', 'Update authorization scripts'));
     $template = $form->getTemplate();
     $template['AUTH_LIST_LABEL'] = dgettext('users', 'Authorization Scripts');
     $template['DEFAULT_LABEL'] = dgettext('users', 'Default');
     $template['DISPLAY_LABEL'] = dgettext('users', 'Display Name');
     $template['FILENAME_LABEL'] = dgettext('users', 'Script Filename');
     $template['DEFAULT_GROUP_LABEL'] = dgettext('users', 'Default group');
     $template['ACTION_LABEL'] = dgettext('users', 'Action');
     $default_authorization = PHPWS_User::getUserSetting('default_authorization');
     foreach ($auth_list as $authorize) {
         $links = array();
         extract($authorize);
         if ($default_authorization == $id) {
             $checked = 'checked="checked"';
         } else {
             $checked = NULL;
         }
         $getVars['module'] = 'users';
         $getVars['action'] = 'admin';
         $getVars['command'] = 'dropScript';
         if ($filename != 'local.php' && $filename != 'global.php') {
             $vars['QUESTION'] = dgettext('users', 'Are you sure you want to drop this authorization script?');
             $vars['ADDRESS'] = sprintf('index.php?module=users&action=admin&command=dropAuthScript&script_id=%s&authkey=%s', $id, Current_User::getAuthKey());
             $vars['LINK'] = dgettext('users', 'Drop');
             $links[1] = javascript('confirm', $vars);
         }
         $getVars['command'] = 'editScript';
         // May enable this later. No need for an edit link right now.
         //            $links[2] = PHPWS_Text::secureLink(dgettext('users', 'Edit'), 'users', $getVars);
         $row['CHECK'] = sprintf('<input type="radio" name="default_authorization" value="%s" %s />', $id, $checked);
         $form = new PHPWS_Form();
         $form->addSelect("default_group[{$id}]", $groups);
         $form->setMatch("default_group[{$id}]", $default_group);
         $row['DEFAULT_GROUP'] = $form->get("default_group[{$id}]");
         $row['DISPLAY_NAME'] = $display_name;
         $row['FILENAME'] = $filename;
         if (!empty($links)) {
             $row['ACTION'] = implode(' | ', $links);
         } else {
             $row['ACTION'] = dgettext('users', 'None');
         }
         $template['auth-rows'][] = $row;
     }
     return PHPWS_Template::process($template, 'users', 'forms/authorization.tpl');
 }