private function check_authorizations() { if (!BugtrackerAuthorizationsService::check_authorizations()->read()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } }
public function get_actions_tree_links() { $lang = LangLoader::get('common', 'bugtracker'); $tree = new ModuleTreeLinks(); $tree->add_link(new ModuleLink($lang['actions.add'], BugtrackerUrlBuilder::add(), BugtrackerAuthorizationsService::check_authorizations()->write())); $tree->add_link(new AdminModuleLink(LangLoader::get_message('configuration', 'admin-common'), BugtrackerUrlBuilder::configuration())); $tree->add_link(new AdminModuleLink($lang['titles.admin.authorizations.manage'], BugtrackerUrlBuilder::authorizations())); return $tree; }
private function check_authorizations() { if (!BugtrackerAuthorizationsService::check_authorizations()->moderation() && $this->current_user->get_id() != $this->bug->get_assigned_to_id()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } if (AppContext::get_current_user()->is_readonly()) { $controller = PHPBoostErrors::user_in_read_only(); DispatchManager::redirect($controller); } }
/** * @method Get comments authorizations */ public function get_authorizations() { $authorizations = new CommentsAuthorizations(); $authorizations->set_authorized_access_module(BugtrackerAuthorizationsService::check_authorizations()->read()); return $authorizations; }
private function build_form(HTTPRequestCustom $request) { $common_lang = LangLoader::get('common'); $bug = $this->get_bug(); $types = $this->config->get_types(); $categories = $this->config->get_categories(); $severities = $this->config->get_severities(); $priorities = $this->config->get_priorities(); $versions_detected_in = array_reverse($this->config->get_versions_detected(), true); $display_types = count($types) > 1; $display_categories = count($categories) > 1; $display_severities = count($severities) > 1; $display_priorities = count($priorities) > 1; $display_versions_detected_in = count($versions_detected_in) > 1; $default_type = $this->config->get_default_type(); $default_category = $this->config->get_default_category(); $default_severity = $this->config->get_default_severity(); $default_priority = $this->config->get_default_priority(); $default_version = $this->config->get_default_version(); $form = new HTMLForm(__CLASS__); $fieldset = new FormFieldsetHTML('bug_infos', $this->lang['titles.bugs_infos']); $form->add_fieldset($fieldset); $fieldset->add_field(new FormFieldTextEditor('title', $common_lang['form.title'], $bug->get_title(), array('required' => true))); $fieldset->add_field(new FormFieldRichTextEditor('contents', $common_lang['form.description'], $bug->get_contents(), array('description' => $this->lang['explain.contents'], 'rows' => 15, 'required' => true))); //Types if ($display_types) { $array_types = array(); if (empty($default_type)) { $array_types[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($types as $key => $type) { $array_types[] = new FormFieldSelectChoiceOption(stripslashes($type), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('type', $this->lang['labels.fields.type'], $bug->get_type(), $array_types, array('required' => $this->config->is_type_mandatory()))); } //Categories if ($display_categories) { $array_categories = array(); if (empty($default_category)) { $array_categories[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($categories as $key => $category) { $array_categories[] = new FormFieldSelectChoiceOption(stripslashes($category), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('category', $this->lang['labels.fields.category'], $bug->get_category(), $array_categories, array('required' => $this->config->is_category_mandatory()))); } if (BugtrackerAuthorizationsService::check_authorizations()->advanced_write()) { //Severities if ($display_severities) { $array_severities = array(); if (empty($default_severity)) { $array_severities[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($severities as $key => $severity) { $array_severities[] = new FormFieldSelectChoiceOption(stripslashes($severity['name']), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('severity', $this->lang['labels.fields.severity'], $bug->get_severity(), $array_severities, array('required' => $this->config->is_severity_mandatory()))); } //Priorities if ($display_priorities) { $array_priorities = array(); if (empty($default_priority)) { $array_priorities[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($priorities as $key => $priority) { $array_priorities[] = new FormFieldSelectChoiceOption(stripslashes($priority), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('priority', $this->lang['labels.fields.priority'], $bug->get_priority(), $array_priorities, array('required' => $this->config->is_priority_mandatory()))); } } //Detected versions if ($display_versions_detected_in) { $array_versions = array(); if (empty($default_version)) { $array_versions[] = new FormFieldSelectChoiceOption(' ', ''); } foreach ($versions_detected_in as $key => $version) { $array_versions[] = new FormFieldSelectChoiceOption(stripslashes($version['name']), $key); } $fieldset->add_field(new FormFieldSimpleSelectChoice('detected_in', $this->lang['labels.fields.detected_in'], $bug->get_detected_in(), $array_versions, array('required' => $this->config->is_detected_in_version_mandatory()))); } $fieldset->add_field(new FormFieldCheckbox('reproductible', $this->lang['labels.fields.reproductible'], $bug->is_reproductible() ? FormFieldCheckbox::CHECKED : FormFieldCheckbox::UNCHECKED, array('events' => array('click' => ' if (HTMLForms.getField("reproductible").getValue()) { HTMLForms.getField("reproduction_method").enable(); } else { HTMLForms.getField("reproduction_method").disable(); }')))); $fieldset->add_field(new FormFieldRichTextEditor('reproduction_method', $this->lang['labels.fields.reproduction_method'], FormatingHelper::unparse($bug->get_reproduction_method()), array('rows' => 15, 'hidden' => !$bug->is_reproductible()))); $fieldset->add_field(new FormFieldHidden('referrer', $request->get_url_referrer())); $this->submit_button = new FormButtonDefaultSubmit(); $form->add_button($this->submit_button); $form->add_button(new FormButtonReset()); $this->form = $form; }
public function is_authorized_to_edit() { return BugtrackerAuthorizationsService::check_authorizations()->moderation() || BugtrackerAuthorizationsService::check_authorizations()->write() && $this->get_author_user()->get_id() == AppContext::get_current_user()->get_id(); }