/** * Check that tracker can be accessed by user * * @param Tracker $tracker * @param PFUser $user * @param Codendi_Request $request * * @throws Tracker_CannotAccessTrackerException */ public function checkUserCanAccessTracker($tracker, $user, Codendi_Request $request) { $this->checkServiceEnabled($tracker->getProject(), $request); if (!$tracker->isActive()) { throw new Tracker_CannotAccessTrackerException($GLOBALS['Language']->getText('plugin_tracker_common_type', 'tracker_not_exist')); } if (!$tracker->userCanView($user)) { throw new Tracker_CannotAccessTrackerException($GLOBALS['Language']->getText('plugin_tracker_common_type', 'no_view_permission')); } }
public static function showEditForm(Tracker $tracker) { $tpl = array(); $tpl['TRACKER_TYPE'] = $tracker->trackerType(); $form = new PHPWS_Form('tracker'); $form->addHidden('module', 'analytics'); $form->addHidden('command', 'save_tracker'); $form->addSubmit('submit', dgettext('analytics', 'Save Tracker')); if (isset($_REQUEST['tracker'])) { $form->addHidden('tracker', $_REQUEST['tracker']); } if ($tracker->getId() > 0) { $form->addHidden('tracker_id', $tracker->getId()); } $form->addText('name', $tracker->getName()); $form->setLabel('name', dgettext('analytics', 'Friendly Name')); $form->setRequired('name'); $form->addCheck('active', 1); $form->setMatch('active', $tracker->isActive()); $form->setLabel('active', dgettext('analytics', 'Currently Active')); $form->addCheck('disable_if_logged', 1); $form->setMatch('disable_if_logged', $tracker->getDisableIfLogged()); $form->setLabel('disable_if_logged', dgettext('analytics', 'Disable Analytics if a user is logged in')); $tracker->addForm($form); $tpl = array_merge($tpl, $form->getTemplate()); $tpl['TRACKER_FORM'] = PHPWS_Template::process($tpl, 'analytics', $tracker->getFormTemplate()); return PHPWS_Template::process($tpl, 'analytics', 'edit.tpl'); }
/** * Returns the db tabs as an array * * @return array Data for generating db tabs */ private function _getDbTabs() { $db_is_system_schema = $GLOBALS['dbi']->isSystemSchema($this->_db); $num_tables = count($GLOBALS['dbi']->getTables($this->_db)); $is_superuser = $GLOBALS['dbi']->isSuperuser(); $isCreateOrGrantUser = $GLOBALS['dbi']->isUserType('grant') || $GLOBALS['dbi']->isUserType('create'); /** * Gets the relation settings */ $cfgRelation = PMA_getRelationsParam(); $tabs = array(); $tabs['structure']['link'] = 'db_structure.php'; $tabs['structure']['text'] = __('Structure'); $tabs['structure']['icon'] = 'b_props.png'; $tabs['sql']['link'] = 'db_sql.php'; $tabs['sql']['text'] = __('SQL'); $tabs['sql']['icon'] = 'b_sql.png'; $tabs['search']['text'] = __('Search'); $tabs['search']['icon'] = 'b_search.png'; $tabs['search']['link'] = 'db_search.php'; if ($num_tables == 0) { $tabs['search']['warning'] = __('Database seems to be empty!'); } $tabs['qbe']['text'] = __('Query'); $tabs['qbe']['icon'] = 's_db.png'; $tabs['qbe']['link'] = 'db_qbe.php'; if ($num_tables == 0) { $tabs['qbe']['warning'] = __('Database seems to be empty!'); } $tabs['export']['text'] = __('Export'); $tabs['export']['icon'] = 'b_export.png'; $tabs['export']['link'] = 'db_export.php'; if ($num_tables == 0) { $tabs['export']['warning'] = __('Database seems to be empty!'); } if (!$db_is_system_schema) { $tabs['import']['link'] = 'db_import.php'; $tabs['import']['text'] = __('Import'); $tabs['import']['icon'] = 'b_import.png'; $tabs['operation']['link'] = 'db_operations.php'; $tabs['operation']['text'] = __('Operations'); $tabs['operation']['icon'] = 'b_tblops.png'; if ($is_superuser || $isCreateOrGrantUser) { $tabs['privileges']['link'] = 'server_privileges.php'; $tabs['privileges']['args']['checkprivsdb'] = $this->_db; // stay on database view $tabs['privileges']['args']['viewing_mode'] = 'db'; $tabs['privileges']['text'] = __('Privileges'); $tabs['privileges']['icon'] = 's_rights.png'; } $tabs['routines']['link'] = 'db_routines.php'; $tabs['routines']['text'] = __('Routines'); $tabs['routines']['icon'] = 'b_routines.png'; if (Util::currentUserHasPrivilege('EVENT', $this->_db)) { $tabs['events']['link'] = 'db_events.php'; $tabs['events']['text'] = __('Events'); $tabs['events']['icon'] = 'b_events.png'; } if (Util::currentUserHasPrivilege('TRIGGER', $this->_db)) { $tabs['triggers']['link'] = 'db_triggers.php'; $tabs['triggers']['text'] = __('Triggers'); $tabs['triggers']['icon'] = 'b_triggers.png'; } } if (Tracker::isActive() && !$db_is_system_schema) { $tabs['tracking']['text'] = __('Tracking'); $tabs['tracking']['icon'] = 'eye.png'; $tabs['tracking']['link'] = 'db_tracking.php'; } if (!$db_is_system_schema) { $tabs['designer']['text'] = __('Designer'); $tabs['designer']['icon'] = 'b_relations.png'; $tabs['designer']['link'] = 'db_designer.php'; $tabs['designer']['id'] = 'designer_tab'; } if (!$db_is_system_schema && $cfgRelation['centralcolumnswork']) { $tabs['central_columns']['text'] = __('Central columns'); $tabs['central_columns']['icon'] = 'centralColumns.png'; $tabs['central_columns']['link'] = 'db_central_columns.php'; } return $tabs; }