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 -101 1.0.56.0.6 View file →
@@ -1,102 +1,119 @@
1 -<?php
2 -if ( ! defined( 'ABSPATH' ) ) {
3 - exit; // Exit if accessed directly
4 -}
5 -global $wpdb,$wppmfunction,$current_user;
6 -$proj_id = isset($_POST['proj_id']) ? sanitize_text_field($_POST['proj_id']) : '' ;
7 -if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_project_permission('assign_project_users',$proj_id))) {exit;}
8 -$wppm_users_role = get_option('wppm_user_role');
9 -$project_data = $wppmfunction->get_project($proj_id);
10 -$prev_assign_users = $project_data['users'];
11 -if(!empty($prev_assign_users )){
12 - $prev_assign_users = explode(",",$prev_assign_users);
13 -}
14 -$users = (!empty($_POST['user_names']))? $wppmfunction->sanitize_array($_POST['user_names']):"";
15 -$prev_assgn_user_meta = $wppmfunction->get_project_meta($proj_id,'prev_assigned_users');
16 -$wppmfunction->delete_project_meta($proj_id,'prev_assigned_users');
17 -$task_users = $wpdb->get_results("SELECT id,users FROM {$wpdb->prefix}wppm_task WHERE project = $proj_id");
18 -if(!empty($prev_assign_users)) {
19 - foreach($prev_assign_users as $puser){
20 - $wppmfunction->add_project_meta($proj_id,'prev_assigned_users',$puser);
21 - if(!empty($users) && !in_array($puser,$users)){
22 - if(!empty($task_users)){
23 - foreach($task_users as $tuser){
24 - if(!empty($tuser)){
25 - $wppm_tuser = explode(',',$tuser->users);
26 - if (($key = array_search($puser, $wppm_tuser)) !== false) {
27 - unset($wppm_tuser[$key]);
28 - if(!empty($wppm_tuser)){
29 - $wppmtuser = implode(',',$wppm_tuser);
30 - $value=array(
31 - 'users'=> $wppmtuser
32 - );
33 - } elseif(empty($wppm_tuser)){
34 - $value=array(
35 - 'users'=> ''
36 - );
37 - }
38 - $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>$tuser->id));
39 - }
40 - }
41 - }
42 - }
43 - }
44 - elseif(empty($users) && !empty($task_users)){
45 - foreach($task_users as $tuser){
46 - if(!empty($tuser)){
47 - $wppm_tuser = explode(',',$tuser->users);
48 - if (($key = array_search($puser, $wppm_tuser)) !== false) {
49 - unset($wppm_tuser[$key]);
50 - if(!empty($wppm_tuser)){
51 - $wppmtuser = implode(',',$wppm_tuser);
52 - $value=array(
53 - 'users'=> $wppmtuser
54 - );
55 - } elseif(empty($wppm_tuser)){
56 - $value=array(
57 - 'users'=> ''
58 - );
59 - }
60 - $wpdb->update($wpdb->prefix.'wppm_task', $value, array('id'=>$tuser->id));
61 - }
62 - }
63 - }
64 - }
65 - }
66 -}
67 -if(!empty($users)){
68 - $users = array_unique($users);
69 - foreach($users as $user){
70 - $user_role = sanitize_text_field($_POST['wppm_select_user_role_'.$user]);
71 - $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = '$proj_id' AND user_id = '$user'");
72 - if(!empty($project_user)){
73 - $values=array(
74 - 'role_id'=> $user_role,
75 - 'assigned_by'=> $current_user->ID
76 - );
77 - $wpdb->update($wpdb->prefix.'wppm_project_users', $values, array('id'=>$project_user->id));
78 - }else{
79 - $wpdb->insert(
80 - $wpdb->prefix . 'wppm_project_users',
81 - array(
82 - 'proj_id' => $proj_id,
83 - 'user_id' => $user,
84 - 'role_id' => $user_role,
85 - 'assigned_by' => $current_user->ID
86 - ) );
87 - }
88 - }
89 - $pusers = implode(",",$users);
90 - if($project_data['users'] != $pusers){
91 - $pvalues=array(
92 - 'users'=> $pusers
93 - );
94 - $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>$proj_id));
95 - }
96 -} else{
97 - $pvalues = array(
98 - 'users'=>''
99 - );
100 - $wpdb->update($wpdb->prefix.'wppm_project', $pvalues, array('id'=>$proj_id));
101 -}
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);
102 119 do_action('wppm_set_project_users', $proj_id);