예제 #1
0
파일: Settings.php 프로젝트: rodino25/tsv2
 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.'));
     }
 }
예제 #2
0
파일: Members.php 프로젝트: rodino25/tsv2
 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));
     }
 }