PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.6
6.0.6 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 All 58 releases
← All changes | includes/admin/projects/open_project/wppm_set_project_users.php +118 -117 5.0.16.0.6 View file →
@@ -1,118 +1,119 @@
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);
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(wp_unslash($_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( $wpdb->prepare("SELECT id,users FROM {$wpdb->prefix}wppm_task WHERE project = %d",$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(wp_unslash($_POST['wppm_select_user_role_'.$user]));
78 + $project_user = $wpdb->get_row(
79 + $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$proj_id,$user));
80 + if(!empty($project_user)){
81 + $values=array(
82 + 'role_id'=> absint($user_role),
83 + 'assigned_by'=> $cu_id
84 + );
85 + $proj_user_id = absint($project_user->id);
86 + $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>"$proj_user_id"));
87 + }else{
88 + $wpdb->insert(
89 + $wpdb->prefix . 'wppm_project_users',
90 + array(
91 + 'proj_id' => absint($proj_id),
92 + 'user_id' => absint($user),
93 + 'role_id' =>absint($user_role),
94 + 'assigned_by' =>absint($cu_id)
95 + ) );
96 + }
97 + }
98 + $pusers = implode(",",$users);
99 + if($project_data['users'] != $pusers){
100 + $pvalues=array(
101 + 'users'=> esc_sql($pusers)
102 + );
103 + $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>"$proj_id"));
104 + }
105 +} else{
106 + $pusers = "";
107 + $pvalues = array(
108 + 'users'=>''
109 + );
110 + $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>$proj_id));
111 +}
112 +$change_assign_user_value = array('prev_assign_user'=>"$project_data[users]",'new_assign_user'=>"$pusers");
113 +$change_assign_user_obj = serialize($change_assign_user_value);
114 +$log_values = array('proj_id'=>esc_sql($proj_id),'body'=>$change_assign_user_obj,'attachment_ids'=>"",'create_time'=>wp_date("Y-m-d h:i:sa"),'created_by'=>"$cu_id" );
115 +$wpdb->insert($wpdb->prefix . 'wppm_project_comment',$log_values);
116 +$log_id = $wpdb->insert_id;
117 +$proj_log_values = array('proj_id'=>esc_sql($proj_id),'comment_id'=>esc_sql($log_id),'comment_type'=>'change_assign_user');
118 +$wpdb->insert($wpdb->prefix . 'wppm_project_comment_meta',$proj_log_values);
118 119 do_action('wppm_set_project_users', $proj_id);