/**
  * @param integer $folder_id
  */
 function __construct($folder_id)
 {
     if (is_numeric($folder_id)) {
         global $user;
         parent::__construct($folder_id);
         $this->organisation_unit_folder = new FolderIsOrganisationUnitFolder_Access($folder_id);
         $this->organisation_unit_id = $this->organisation_unit_folder->get_organisation_unit_id();
         $organisation_unit = new OrganisationUnit($this->organisation_unit_id);
         if ($organisation_unit->is_user_in_organisation_unit($user->get_user_id()) == true or $organisation_unit->is_leader_in_organisation_unit($user->get_user_id()) == true or $organisation_unit->is_owner_in_organisation_unit($user->get_user_id()) == true or $organisation_unit->is_quality_manager_in_organisation_unit($user->get_user_id()) == true) {
             if ($this->read_access == false) {
                 $this->data_entity_permission->set_read_permission();
                 if ($this->data_entity_permission->is_access(1)) {
                     $this->read_access = true;
                 }
             }
             if ($this->write_access == false) {
                 $this->data_entity_permission->set_write_permission();
                 if ($this->data_entity_permission->is_access(2)) {
                     $this->write_access = true;
                 }
             }
         }
     } else {
         parent::__construct(null);
         $this->organisation_unit_folder = null;
         $this->organisation_unit_id = null;
     }
 }
예제 #2
0
 /**
  * @todo IMPORTANT: remove bad dependency, replace with JS
  * @throws UserIDMissingException
  */
 public static function add_organisation_unit()
 {
     if ($_GET['id']) {
         if ($_GET['nextpage'] == 1) {
             if (is_numeric($_POST['ou'])) {
                 $organisation_unit = new OrganisationUnit($_POST['ou']);
                 if ($organisation_unit->is_user_in_organisation_unit($_GET['id']) == true) {
                     $page_1_passed = false;
                     $error = "The user is already member of this organisation unit.";
                 } else {
                     $page_1_passed = true;
                 }
             } else {
                 $page_1_passed = false;
                 $error = "You must select an organisation unit.";
             }
         } elseif ($_GET['nextpage'] > 1) {
             $page_1_passed = true;
         } else {
             $page_1_passed = false;
             $error = "";
         }
         if ($page_1_passed == false) {
             $template = new HTMLTemplate("base/user/admin/user/add_organisation_unit.html");
             $paramquery = $_GET;
             $paramquery['nextpage'] = "1";
             $params = http_build_query($paramquery, '', '&');
             $template->set_var("params", $params);
             $template->set_var("error", $error);
             $organisation_unit_array = OrganisationUnit::list_entries();
             $result = array();
             $counter = 0;
             foreach ($organisation_unit_array as $key => $value) {
                 $organisation_unit = new OrganisationUnit($value);
                 $result[$counter]['value'] = $value;
                 $result[$counter]['content'] = $organisation_unit->get_name();
                 $counter++;
             }
             $template->set_var("option", $result);
             $template->output();
         } else {
             $organisation_unit = new OrganisationUnit($_POST['ou']);
             $paramquery = $_GET;
             $paramquery['action'] = "detail";
             unset($paramquery['nextpage']);
             $params = http_build_query($paramquery, '', '&');
             if ($organisation_unit->create_user_in_organisation_unit($_GET['id'])) {
                 Common_IO::step_proceed($params, "Add Organisation Unit", "Operation Successful", null);
             } else {
                 Common_IO::step_proceed($params, "Add Organisation Unit", "Operation Failed", null);
             }
         }
     } else {
         throw new UserIDMissingException();
     }
 }