Ejemplo n.º 1
0
 /**
  * @throws ProjectIDMissingException
  * @throws ProjectSecurityAccessDeniedException
  * @throws ProjectPermissionIDMissingException
  */
 public static function permission_delete()
 {
     global $project_security, $user;
     if ($_GET['project_id']) {
         if ($_GET['id']) {
             $project = new Project($_GET['project_id']);
             if ($user->get_user_id() == $project->get_owner_id() or $project_security->is_access(2, false) == true or $project_security->is_access(4, false) == true or $project_security->is_access(7, false) == true) {
                 if ($_GET['sure'] != "true") {
                     $template = new HTMLTemplate("project/admin/permission_delete.html");
                     $paramquery = $_GET;
                     $paramquery['sure'] = "true";
                     $params = http_build_query($paramquery);
                     $template->set_var("yes_params", $params);
                     $paramquery = $_GET;
                     unset($paramquery['nextpage']);
                     unset($paramquery['id']);
                     $paramquery['run'] = "admin_permission";
                     $params = http_build_query($paramquery);
                     $template->set_var("no_params", $params);
                     $template->output();
                 } else {
                     $paramquery = $_GET;
                     unset($paramquery['nextpage']);
                     unset($paramquery['id']);
                     unset($paramquery['sure']);
                     $paramquery['run'] = "admin_permission";
                     $params = http_build_query($paramquery);
                     $project_permission = ProjectPermission::get_instance($_GET['id']);
                     if ($project_permission->delete()) {
                         Common_IO::step_proceed($params, "Delete Permission", "Operation Successful", null);
                     } else {
                         Common_IO::step_proceed($params, "Delete Permission", "Operation Failed", null);
                     }
                 }
             } else {
                 throw new ProjectSecurityAccessDeniedException();
             }
         } else {
             throw new ProjectPermissionIDMissingException();
         }
     } else {
         throw new ProjectIDMissingException();
     }
 }
Ejemplo n.º 2
0
 /**
  * @see ProjectInterface::move_to_project()
  * @param integer $organisation_unit_id
  * @return bool
  * @throws ProjectMoveException
  * @throws ProjectMoveProjectExistsException
  * @throws ProjectMovePermissionException
  * @throws ProjectMoveFolderException
  * @throws ProjectSecurityAccessDeniedException
  */
 public function move_to_project($project_id)
 {
     global $user, $transaction;
     if ($this->project_id and $this->project and is_numeric($project_id)) {
         $project_security = new ProjectSecurity($this->project_id);
         if ($project_security->is_access(3, false)) {
             if (self::exist_project_name(null, $project_id, $this->project->get_name()) == false) {
                 $transaction_id = $transaction->begin();
                 $project_permission_array = ProjectPermission::list_entries_by_project_id($this->project_id);
                 if (is_array($project_permission_array) and count($project_permission_array) >= 1) {
                     foreach ($project_permission_array as $key => $value) {
                         try {
                             $project_permission = ProjectPermission::get_instance($value);
                             $project_permission->delete();
                         } catch (ProjectPermissionException $e) {
                             if ($transaction_id != null) {
                                 $transaction->rollback($transaction_id);
                             }
                             throw new ProjectMovePermissionException();
                         }
                     }
                 }
                 if ($this->project->set_toid_organ_unit(null) == false) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     throw new ProjectMoveException();
                 }
                 if ($this->project->set_toid_project($project_id) == false) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     throw new ProjectMoveException();
                 }
                 $folder_id = ProjectFolder::get_folder_by_project_id($this->project_id);
                 $folder = new Folder($folder_id);
                 $destination_id = ProjectFolder::get_folder_by_project_id($project_id);
                 if ($folder->move_folder($destination_id, false) == false) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     throw new ProjectMoveFolderException();
                 }
                 if ($transaction_id != null) {
                     $transaction->commit($transaction_id);
                 }
                 return true;
             } else {
                 throw new ProjectMoveProjectExistsException();
             }
         } else {
             throw new ProjectSecurityAccessDeniedException();
         }
     } else {
         throw new ProjectMoveException();
     }
 }
Ejemplo n.º 3
0
 /**
  * @param string $json_column_array
  * @param string $json_argument_array
  * @param string $css_page_id
  * @param string $css_row_sort_id
  * @param string $entries_per_page
  * @param string $page
  * @param string $sortvalue
  * @param string $sortmethod
  * @return string
  * @throws ProjectSecurityAccessDeniedException
  * @throws ProjectIDMissingException
  */
 public static function list_project_permissions($json_column_array, $json_argument_array, $css_page_id, $css_row_sort_id, $entries_per_page, $page, $sortvalue, $sortmethod)
 {
     global $user, $project_security;
     $argument_array = json_decode($json_argument_array);
     $project_id = $argument_array[1];
     if (is_numeric($project_id)) {
         $project = new Project($project_id);
         $project_permission_array = ProjectPermission::list_entries_by_project_id($project_id);
         if ($user->get_user_id() == $project->get_owner_id() or $project_security->is_access(2, false) == true or $project_security->is_access(4, false) == true or $project_security->is_access(7, false) == true) {
             $list_request = new ListRequest_IO();
             $list_request->set_column_array($json_column_array);
             if (!is_numeric($entries_per_page) or $entries_per_page < 1) {
                 $entries_per_page = 20;
             }
             $list_array = Project_Wrapper::list_project_permissions($project_id, $sortvalue, $sortmethod, $page * $entries_per_page - $entries_per_page, $page * $entries_per_page);
             if (is_array($list_array) and count($list_array) >= 1) {
                 $project = new Project($project_id);
                 $project_security = new ProjectSecurity($project_id);
                 foreach ($list_array as $key => $value) {
                     $list_array[$key]['symbol'] = "<img src='images/icons/permissions.png' alt='N' border='0' />";
                     $project_permission = ProjectPermission::get_instance($list_array[$key]['id']);
                     $user_id = $project_permission->get_user_id();
                     $group_id = $project_permission->get_group_id();
                     $organ_unit_id = $project_permission->get_organisation_unit_id();
                     if ($user_id) {
                         $permission_user = new User($user_id);
                         $list_array[$key]['name'] = $permission_user->get_username();
                         $list_array[$key]['type'] = "user";
                         $list_array[$key]['fullname'] = $permission_user->get_full_name(false);
                     } elseif ($group_id) {
                         $list_array[$key]['type'] = "group";
                     } else {
                         $list_array[$key]['type'] = "organisation unit";
                     }
                     if ($project_permission->get_owner_id() == null) {
                         $list_array[$key]['createdby'] = "system";
                     } else {
                         $created_by = new User($project_permission->get_owner_id());
                         $list_array[$key]['createdby'] = $created_by->get_username();
                     }
                     $permission_array = $project_permission->get_permission_array();
                     if ($project_security->is_access(2, false) or $project->get_owner_id() == $user->get_user_id()) {
                         if ($permission_array['read'] == true) {
                             $list_array[$key]['re'] = "<img src='images/icons/permission_ok_active.png' alt='' />";
                         } else {
                             $list_array[$key]['re'] = "<img src='images/icons/permission_denied_active.png' alt='' />";
                         }
                     } else {
                         if ($permission_array['read'] == true) {
                             $list_array[$key]['re'] = "<img src='images/icons/permission_ok_active_na.png' alt='' />";
                         } else {
                             $list_array[$key]['re'] = "<img src='images/icons/permission_denied_active_na.png' alt='' />";
                         }
                     }
                     if ($project_security->is_access(7, false) or $project->get_owner_id() == $user->get_user_id()) {
                         if ($permission_array['set_readable'] == true) {
                             $list_array[$key]['sr'] = "<img src='images/icons/permission_ok_active.png' alt='' />";
                         } else {
                             $list_array[$key]['sr'] = "<img src='images/icons/permission_denied_active.png' alt='' />";
                         }
                     } else {
                         if ($permission_array['set_readable'] == true) {
                             $list_array[$key]['sr'] = "<img src='images/icons/permission_ok_active_na.png' alt='' />";
                         } else {
                             $list_array[$key]['sr'] = "<img src='images/icons/permission_denied_active_na.png' alt='' />";
                         }
                     }
                     if ($project_security->is_access(4, false) or $project->get_owner_id() == $user->get_user_id()) {
                         if ($permission_array['write'] == true) {
                             $list_array[$key]['wr'] = "<img src='images/icons/permission_ok_active.png' alt='' />";
                         } else {
                             $list_array[$key]['wr'] = "<img src='images/icons/permission_denied_active.png' alt='' />";
                         }
                     } else {
                         if ($permission_array['write'] == true) {
                             $list_array[$key]['wr'] = "<img src='images/icons/permission_ok_active_na.png' alt='' />";
                         } else {
                             $list_array[$key]['wr'] = "<img src='images/icons/permission_denied_active_na.png' alt='' />";
                         }
                     }
                     if ($project_security->is_access(7, false) or $project->get_owner_id() == $user->get_user_id()) {
                         if ($permission_array['set_writeable'] == true) {
                             $list_array[$key]['sw'] = "<img src='images/icons/permission_ok_active.png' alt='' />";
                         } else {
                             $list_array[$key]['sw'] = "<img src='images/icons/permission_denied_active.png' alt='' />";
                         }
                     } else {
                         if ($permission_array['set_writeable'] == true) {
                             $list_array[$key]['sw'] = "<img src='images/icons/permission_ok_active_na.png' alt='' />";
                         } else {
                             $list_array[$key]['sw'] = "<img src='images/icons/permission_denied_active_na.png' alt='' />";
                         }
                     }
                     if ($project_security->is_access(7, false)) {
                         if ($permission_array['reactivate'] == true) {
                             $list_array[$key]['ra'] = "<img src='images/icons/permission_ok_active.png' alt='' />";
                         } else {
                             $list_array[$key]['ra'] = "<img src='images/icons/permission_denied_active.png' alt='' />";
                         }
                         if ($permission_array['delete'] == true) {
                             $list_array[$key]['de'] = "<img src='images/icons/permission_ok_active.png' alt='' />";
                         } else {
                             $list_array[$key]['de'] = "<img src='images/icons/permission_denied_active.png' alt='' />";
                         }
                         if ($permission_array['set_permissions'] == true) {
                             $list_array[$key]['sp'] = "<img src='images/icons/permission_ok_active.png' alt='' />";
                         } else {
                             $list_array[$key]['sp'] = "<img src='images/icons/permission_denied_active.png' alt='' />";
                         }
                     } else {
                         if ($permission_array['reactivate'] == true) {
                             $list_array[$key]['ra'] = "<img src='images/icons/permission_ok_active_na.png' alt='' />";
                         } else {
                             $list_array[$key]['ra'] = "<img src='images/icons/permission_denied_active_na.png' alt='' />";
                         }
                         if ($permission_array['delete'] == true) {
                             $list_array[$key]['de'] = "<img src='images/icons/permission_ok_active_na.png' alt='' />";
                         } else {
                             $list_array[$key]['de'] = "<img src='images/icons/permission_denied_active_na.png' alt='' />";
                         }
                         if ($permission_array['set_permissions'] == true) {
                             $list_array[$key]['sp'] = "<img src='images/icons/permission_ok_active_na.png' alt='' />";
                         } else {
                             $list_array[$key]['sp'] = "<img src='images/icons/permission_denied_active_na.png' alt='' />";
                         }
                     }
                     $edit_paramquery = array();
                     $edit_paramquery['username'] = $_GET['username'];
                     $edit_paramquery['session_id'] = $_GET['session_id'];
                     $edit_paramquery['nav'] = "project";
                     $edit_paramquery['run'] = "admin_permission_edit";
                     $edit_paramquery['project_id'] = $project_id;
                     $edit_paramquery['id'] = $list_array[$key]['id'];
                     $edit_params = http_build_query($edit_paramquery, '', '&#38;');
                     $list_array[$key]['e']['link'] = $edit_params;
                     $list_array[$key]['e']['content'] = "E";
                     if ($project_permission->get_intention() == null) {
                         $delete_paramquery = array();
                         $delete_paramquery['username'] = $_GET['username'];
                         $delete_paramquery['session_id'] = $_GET['session_id'];
                         $delete_paramquery['nav'] = "project";
                         $delete_paramquery['run'] = "admin_permission_delete";
                         $delete_paramquery['project_id'] = $project_id;
                         $delete_paramquery['id'] = $list_array[$key]['id'];
                         $delete_params = http_build_query($delete_paramquery, '', '&#38;');
                         $list_array[$key]['d']['link'] = $delete_params;
                         $list_array[$key]['d']['content'] = "D";
                     } else {
                         $list_array[$key]['d']['content'] = "";
                     }
                 }
             } else {
                 $list_request->empty_message("<span class='italic'>No permissions found!</span>");
             }
             $list_request->set_array($list_array);
             return $list_request->get_page($page);
         } else {
             throw new ProjectSecurityAccessDeniedException();
         }
     } else {
         throw new ProjectIDMissingException();
     }
 }
Ejemplo n.º 4
0
 /**
  * @see ProjectSecurityInterface::change_organisation_unit_permission()
  * @param integer $organisation_unit_id
  * @return bool
  * @throws ProjectSecurityChangeException
  */
 public function change_organisation_unit_permission($organisation_unit_id)
 {
     global $transaction;
     if (is_numeric($organisation_unit_id)) {
         $transaction_id = $transaction->begin();
         $organisation_unit = new OrganisationUnit($organisation_unit_id);
         $project_permission_ou_group_array = ProjectPermission::list_entries_by_project_id_and_intention($this->project_id, 4);
         if (is_array($project_permission_ou_group_array) and count($project_permission_ou_group_array) >= 1) {
             foreach ($project_permission_ou_group_array as $key => $value) {
                 try {
                     $project_permission = ProjectPermission::get_instance($value);
                     $project_permission->delete() == false;
                 } catch (ProjectPermissionException $e) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     throw new ProjectSecurityChangeException();
                 }
             }
         }
         $project_permission_array = ProjectPermission::list_entries_by_project_id_and_intention($this->project_id, 3);
         if (count($project_permission_array) > 0 and is_numeric($project_permission_array[0])) {
             $project_permission = ProjectPermission::get_instance($project_permission_array[0]);
             if (($return_value = $project_permission->set_organisation_unit_id($organisation_unit_id)) == false) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 throw new ProjectSecurityChangeException();
             }
         } else {
             try {
                 $project_permission = new ProjectPermissionOrganisationUnit(null);
                 $return_value = $project_permission->create($organisation_unit_id, $this->project_id, (int) Registry::get_value("project_organisation_unit_default_permission"), null, 3);
             } catch (ProjectPermissionOrganisationUnitException $e) {
                 if ($transaction_id != null) {
                     $transaction->rollback($transaction_id);
                 }
                 throw new ProjectSecurityChangeException();
             }
         }
         $group_array = $organisation_unit->list_groups();
         if (is_array($group_array) and count($group_array) >= 1) {
             foreach ($group_array as $key => $value) {
                 try {
                     $project_permission = new ProjectPermissionGroup(null);
                     $project_permission->create($value, $this->project_id, (int) Registry::get_value("project_group_default_permission"), null, 4);
                 } catch (ProjectPermissionGroupException $e) {
                     if ($transaction_id != null) {
                         $transaction->rollback($transaction_id);
                     }
                     throw new ProjectSecurityChangeException();
                 }
             }
         }
         if ($transaction_id != null) {
             $transaction->commit($transaction_id);
         }
         return $return_value;
     } else {
         throw new ProjectSecurityChangeException("Missing Information");
     }
 }