/** * @see ProjectSecurityInterface::change_ou_user_permission() * @param integer $leader_id * @return bool * @throws ProjectSecurityChangeException */ public function change_ou_user_permission($organisation_unit_id) { if (is_numeric($organisation_unit_id)) { if (ProjectPermission::delete_entries_by_project_id_and_intention($this->project_id, 2) == true and ProjectPermission::delete_entries_by_project_id_and_intention($this->project_id, 5) == true) { $organisation_unit = new OrganisationUnit($organisation_unit_id); $leader_array = $organisation_unit->list_leaders($organisation_unit_id); if (is_array($leader_array) and count($leader_array) >= 1) { foreach ($leader_array as $key => $value) { try { $project_permission = new ProjectPermissionUser(null); $project_permission->create($value, $project_id, (int) Registry::get_value("project_leader_default_permission"), null, 2); } catch (ProjectPermissionUserException $e) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } throw new ProjectSecurityChangeException(); } } } $quality_manager_array = $organisation_unit->list_quality_managers(); if (is_array($quality_manager_array) and count($quality_manager_array) >= 1) { foreach ($quality_manager_array as $key => $value) { try { $project_permission = new ProjectPermissionUser(null); $project_permission->create($value, $project_id, (int) Registry::get_value("project_quality_manager_default_permission"), null, 5); } catch (ProjectPermissionUserException $e) { if ($transaction_id != null) { $transaction->rollback($transaction_id); } throw new ProjectSecurityChangeException(); } } } return true; } else { throw new ProjectSecurityChangeException("Cannot delete Entries"); } } else { throw new ProjectSecurityChangeException("Missing Information"); } }