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;
    }
Example #6
0
 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();
 }