PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 4.0.7
Taskbuilder – Project Management & Task Management Tool With Kanban Board v4.0.7
6.0.5 6.0.2 6.0.3 6.0.4 6.0.1 6.0.0 5.0.8 5.0.9 4.0.9 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 All 57 releases
taskbuilder / includes / admin / projects / open_project / wppm_set_project_users.php

wppm_set_project_users.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 4.0.7, at includes/admin/projects/open_project/wppm_set_project_users.php

118 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit; // Exit if accessed directly
4 }
5 global $wpdb,$wppmfunction,$current_user;
6 if ( check_ajax_referer( 'wppm_set_project_users', '_ajax_nonce', false ) != 1 ) {
7 wp_send_json_error( 'Unauthorised request!', 401 );
8 }
9 $proj_id = isset($_POST['proj_id']) ? intval(sanitize_text_field($_POST['proj_id'])) : '' ;
10 $project_data = $wppmfunction->get_project($proj_id);
11 $cu_id = esc_sql($current_user->ID);
12 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
13 if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))) {exit;}
14 $wppm_users_role = get_option('wppm_user_role');
15 $prev_assign_users = $project_data['users'];
16 if(!empty($prev_assign_users )){
17 $prev_assign_users = explode(",",$prev_assign_users);
18 }
19 $users = (!empty($_POST['user_names']))? $wppmfunction->sanitize_array($_POST['user_names']):"";
20 $prev_assgn_user_meta = $wppmfunction->get_project_meta($proj_id,'prev_assigned_users');
21 $wppmfunction->delete_project_meta($proj_id,'prev_assigned_users');
22 $task_users = $wpdb->get_results("SELECT id,users FROM {$wpdb->prefix}wppm_task WHERE project = '".esc_sql($proj_id)."'");
23 if(!empty($prev_assign_users)) {
24 foreach($prev_assign_users as $puser){
25 $wppmfunction->add_project_meta($proj_id,'prev_assigned_users',$puser);
26 if(!empty($users) && !in_array($puser,$users)){
27 if(!empty($task_users)){
28 foreach($task_users as $tuser){
29 if(!empty($tuser)){
30 $wppm_tuser = explode(',',$tuser->users);
31 $tuser_id = esc_sql($tuser->id);
32 if (($key = array_search($puser, $wppm_tuser)) !== false) {
33 unset($wppm_tuser[$key]);
34 if(!empty($wppm_tuser)){
35 $wppmtuser = implode(',',$wppm_tuser);
36 $value=array(
37 'users'=> esc_sql($wppmtuser)
38 );
39 } elseif(empty($wppm_tuser)){
40 $value=array(
41 'users'=> ''
42 );
43 }
44 $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>"$tuser_id"));
45 }
46 }
47 }
48 }
49 }
50 elseif(empty($users) && !empty($task_users)){
51 foreach($task_users as $tuser){
52 if(!empty($tuser)){
53 $wppm_tuser = explode(',',$tuser->users);
54 $tuser_id = esc_sql($tuser->id);
55 if (($key = array_search($puser, $wppm_tuser)) !== false) {
56 unset($wppm_tuser[$key]);
57 if(!empty($wppm_tuser)){
58 $wppmtuser = implode(',',$wppm_tuser);
59 $value=array(
60 'users'=> esc_sql($wppmtuser)
61 );
62 } elseif(empty($wppm_tuser)){
63 $value=array(
64 'users'=> ''
65 );
66 }
67 $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>"$tuser_id"));
68 }
69 }
70 }
71 }
72 }
73 }
74 if(!empty($users)){
75 $users = array_unique($users);
76 foreach($users as $user){
77 $user_role = sanitize_text_field($_POST['wppm_select_user_role_'.$user]);
78 $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = '".esc_sql($proj_id)."' AND user_id = '".esc_sql($user)."'");
79 if(!empty($project_user)){
80 $values=array(
81 'role_id'=> esc_sql($user_role),
82 'assigned_by'=> $cu_id
83 );
84 $proj_user_id = esc_sql($project_user->id);
85 $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>"$proj_user_id"));
86 }else{
87 $wpdb->insert(
88 $wpdb->prefix . 'wppm_project_users',
89 array(
90 'proj_id' => esc_sql($proj_id),
91 'user_id' => esc_sql($user),
92 'role_id' =>esc_sql($user_role),
93 'assigned_by' => $cu_id
94 ) );
95 }
96 }
97 $pusers = implode(",",$users);
98 if($project_data['users'] != $pusers){
99 $pvalues=array(
100 'users'=> esc_sql($pusers)
101 );
102 $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>"$proj_id"));
103 }
104 } else{
105 $pusers = "";
106 $pvalues = array(
107 'users'=>''
108 );
109 $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>$proj_id));
110 }
111 $change_assign_user_value = array('prev_assign_user'=>"$project_data[users]",'new_assign_user'=>"$pusers");
112 $change_assign_user_obj = serialize($change_assign_user_value);
113 $log_values = array('proj_id'=>esc_sql($proj_id),'body'=>$change_assign_user_obj,'attachment_ids'=>"",'create_time'=>date("Y-m-d h:i:sa"),'created_by'=>"$cu_id" );
114 $wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);
115 $log_id = $wpdb->insert_id;
116 $proj_log_values = array('proj_id'=>esc_sql($proj_id),'comment_id'=>esc_sql($log_id),'comment_type'=>'change_assign_user');
117 $wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);
118 do_action('wppm_set_project_users', $proj_id);