/** * Save the permissions * * @access public * @return void Outputs to screen **/ public function permDoEdit() { /* INI */ $perms = array(); $this->request['f'] = intval($this->request['f']); /* Security Check */ $this->registry->adminFunctions->checkSecurityKey(); /* Save the permissions */ require_once IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php'; $permissions = new classPublicPermissions(ipsRegistry::instance()); $permissions->savePermMatrix($this->request['perms'], $this->request['f'], 'forum'); /* Log */ $this->registry->adminFunctions->saveAdminLog(sprintf($this->lang->words['for_permeditedin'], $this->request['name'])); $this->recacheForums(); /* Previous Forum */ if ($this->request['doprevious'] and $this->request['doprevious'] and $this->request['previd'] > 0) { $this->registry->output->global_message = $this->lang->words['for_permedited']; $this->request['f'] = $this->request['previd']; $this->registry->output->silentRedirect("{$this->settings['base_url']}{$this->html->form_code}do=pedit&f=" . $this->request['f']); } else { if ($this->request['donext'] and $this->request['donext'] and $this->request['nextid'] > 0) { $this->registry->output->global_message = $this->lang->words['for_permedited']; $this->request['f'] = $this->request['nextid']; $this->registry->output->silentRedirect("{$this->settings['base_url']}{$this->html->form_code}do=pedit&f=" . $this->request['f']); } else { if ($this->request['reload'] and $this->request['reload']) { $this->registry->output->silentRedirect("{$this->settings['base_url']}{$this->html->form_code}do=pedit&f=" . $this->request['f']); } else { $this->registry->output->doneScreen($this->lang->words['for_permedited2'], $this->lang->words['for_control'], $this->html->form_code, 'redirect'); } } } }
/** * Form for modifying a permission set * * @access private * @return void [Outputs to screen] */ private function _permissionSetForm() { /* ID */ $id = intval($this->request['id']); $matricies = array(); $apps = array(); /* Query Set Name */ $set_data = $this->DB->buildAndFetch(array('select' => '*', 'from' => 'forum_perms', 'where' => "perm_id={$id}")); /* Permissions Class */ require_once IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php'; $perm_obj = new classPublicPermissions($this->registry); /* Loop through applications */ foreach ($this->registry->getApplications() as $app) { /* Check to see if there is a permission map */ $_file = IPSLib::getAppDir($app['app_directory']) . '/extensions/coreExtensions.php'; if (file_exists($_file)) { /* Get the permission mappings */ require_once $_file; /* Check for a config array */ if (isset($_PERM_CONFIG) && is_array($_PERM_CONFIG) && count($_PERM_CONFIG)) { /* Loop through the types */ foreach ($_PERM_CONFIG as $perm_type) { /* Check for a class */ $_class = $app['app_directory'] . 'PermMapping' . $perm_type; if (class_exists($_class)) { /* Create the object */ $perm_map = new $_class(); /* Make sure the function exists */ if (method_exists($perm_map, 'getPermItems')) { $matricies[$app['app_title']] = $perm_obj->adminItemPermMatrix($perm_map, $perm_map->getPermItems(), $id, $app['app_directory'], $perm_type); $apps[$app['app_directory']] = $perm_type; } } } } } } /* Output */ $this->registry->output->html .= $this->html->permissionEditor($set_data['perm_name'], $matricies, $id, $apps); }
/** * Add/Edit Calendar Form * * @access public * @param string $type Either new or edit * @return void */ public function calendarForm($type = 'new') { //----------------------------------------- // Init Vars //----------------------------------------- $cal_id = $this->request['cal_id'] ? intval($this->request['cal_id']) : 0; $form = array(); $form['perm_read'] = ""; $form['perm_post'] = ""; $form['perm_nomod'] = ""; $form['perm_read_all'] = ""; $form['perm_post_all'] = ""; $form['perm_nomod_all'] = ""; /* New Calendar */ if ($type == 'new') { /* Form Bits */ $formcode = 'calendar_add_do'; $title = $this->lang->words['c_addcal']; $button = $this->lang->words['c_addcal']; /* Data */ $calendar = array('perm_read' => '', 'perm_post' => '', 'perm_nomod' => '', 'cal_title' => '', 'cal_moderate' => '', 'cal_event_limit' => '', 'cal_bday_limit' => '', 'cal_rss_export' => '', 'cal_rss_update' => '', 'cal_rss_export_days' => '', 'cal_rss_export_max' => '', 'cal_id' => 0); } else { /* Data */ $calendar = $this->DB->buildAndFetch(array('select' => 'c.*', 'from' => array('cal_calendars' => 'c'), 'where' => 'c.cal_id=' . $cal_id, 'add_join' => array(array('select' => 'p.*', 'from' => array('permission_index' => 'p'), 'where' => "p.perm_type='calendar' AND perm_type_id=c.cal_id", 'type' => 'left')))); if (!$calendar['cal_id']) { $this->registry->output->global_message = $this->lang->words['c_noid']; $this->calendarsList(); return; } /* Form Bits */ $formcode = 'calendar_edit_do'; $title = $this->lang->words['c_editbutton'] . $calendar['cal_title']; $button = $this->lang->words['c_savebutton']; } /* Permissions */ require_once IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php'; $permissions = new classPublicPermissions(ipsRegistry::instance()); $form['perm_matrix'] = $permissions->adminPermMatrix('calendar', $calendar); /* Form Elements */ $form['cal_title'] = $this->registry->output->formInput('cal_title', IPSText::htmlspecialchars((isset($_POST['cal_title']) and $_POST['cal_title']) ? $_POST['cal_title'] : $calendar['cal_title'])); $form['cal_moderate'] = $this->registry->output->formYesNo('cal_moderate', (isset($this->request['cal_moderate']) and $this->request['cal_moderate']) ? $this->request['cal_moderate'] : $calendar['cal_moderate']); $form['cal_event_limit'] = $this->registry->output->formSimpleInput('cal_event_limit', (isset($this->request['cal_event_limit']) and $this->request['cal_event_limit']) ? $this->request['cal_event_limit'] : $calendar['cal_event_limit'], 5); $form['cal_bday_limit'] = $this->registry->output->formSimpleInput('cal_bday_limit', (isset($this->request['cal_bday_limit']) and $this->request['cal_bday_limit']) ? $this->request['cal_bday_limit'] : $calendar['cal_bday_limit'], 5); $form['cal_rss_export'] = $this->registry->output->formYesNo('cal_rss_export', (isset($this->request['cal_rss_export']) and $this->request['cal_rss_export']) ? $this->request['cal_rss_export'] : $calendar['cal_rss_export']); $form['cal_rss_update'] = $this->registry->output->formSimpleInput('cal_rss_update', (isset($this->request['cal_rss_update']) and $this->request['cal_rss_update']) ? $this->request['cal_rss_update'] : $calendar['cal_rss_update'], 5); $form['cal_rss_export_days'] = $this->registry->output->formSimpleInput('cal_rss_export_days', (isset($this->request['cal_rss_export_days']) and $this->request['cal_rss_export_days']) ? $this->request['cal_rss_export_days'] : $calendar['cal_rss_export_days'], 5); $form['cal_rss_export_max'] = $this->registry->output->formSimpleInput('cal_rss_export_max', (isset($this->request['cal_rss_export_max']) and $this->request['cal_rss_export_max']) ? $this->request['cal_rss_export_max'] : $calendar['cal_rss_export_max'], 5); /* Output */ $this->registry->output->html .= $this->html->calendarForm($form, $title, $formcode, $button, $calendar); }