public function do_update() { requirelogin(); updateLastActive(); $myID = getUserID(); $pid = (int) jsonInput('id'); $myRole = (int) get_project_roles($pid, $myID); $query = $this->mdb->project_get($pid); if ($query->num_rows()) { $row = $query->row(); if ($myRole > 0 || $myID == $row->creator_id) { $title = trim(jsonInput('title')); $description = jsonInput('description'); $status = (int) jsonInput('status'); $privacy = (int) jsonInput('privacy'); $task_approval = jsonInput('task_approval') ? 1 : 0; $project_approval = jsonInput('project_approval') ? 1 : 0; if (empty($title)) { generate_json(array('status' => 0, 'message' => 'Project title is required.')); } elseif ($status < 0 || $status > 1) { generate_json(array('status' => 0, 'message' => 'Invalid status.')); } elseif ($privacy < 0 || $privacy > 2) { generate_json(array('status' => 0, 'message' => 'Invalid privacy settings.')); } else { $sql = $this->mdb->project_update($pid, array('project_name' => $title, 'description' => $description, 'completed' => $status, 'privacy' => $privacy)); $this->mdb->projSettings_update(array('project_id' => $pid), array('task_approval' => $task_approval, 'project_approval' => $project_approval)); generate_json(array('status' => 1)); } } else { generate_json(array('status' => 0, 'message' => 'You are not allowed here.')); } } else { generate_json(array('status' => 0, 'message' => 'Project not found.')); } }
public function update_role($pid = 0) { $myID = getUserID(); $user = (int) $this->input->get('id'); $role = (int) $this->input->get('role'); $myRole = (int) get_project_roles($pid, $myID); $targetRole = (int) get_project_roles($pid, $user); $targetRoleName = ''; $newRoleName = ''; $qCurrRole = $this->mmdb->get_project_role($pid, $targetRole); if ($qCurrRole->num_rows()) { $qCurrRoleRow = $qCurrRole->row(); $targetRoleName = $qCurrRoleRow->role; } $qNewRole = $this->mmdb->get_project_role($pid, $role); if ($qNewRole->num_rows()) { $qNewRoleRow = $qNewRole->row(); $newRoleName = $qNewRoleRow->role; } if ($myRole > 0 && $myRole >= $targetRole && $role <= $myRole && $user != $myID) { $this->mmdb->update_member(array('project_id' => $pid, 'user_id' => $user), array('project_role' => $role)); $qTargetMember = $this->model->getUserInfo(array('id' => $user)); if ($qTargetMember->num_rows()) { $qTargetMemberRow = $qTargetMember->row(); $targetName = $qTargetMemberRow->display_name; if ($role > $targetRole) { projectLogs_add('member_promote', $pid, array('user_id' => $user, 'user_name' => $targetName, 'user_role' => $targetRoleName, 'target_role' => $newRoleName)); } if ($role < $targetRole) { projectLogs_add('member_demote', $pid, array('user_id' => $user, 'user_name' => $targetName, 'user_role' => $targetRoleName, 'target_role' => $newRoleName)); } } generate_json(array('status' => 1)); } else { generate_json(array('status' => 0)); } }