PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.7
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.7
6.0.7 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 All 59 releases
← All changes | includes/admin/projects/wppm_open_project.php +73 -34 5.0.4 → 6.0.7 View file →
@@ -17,9 +17,11 @@
17 17 $wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');
18 18 $current_date = wp_date('Y-m-d');
19 19 $id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;
20 20 if (!isset($id)) {exit;}
21 -$auth_id = $wppmfunction->get_project_meta($id,'project_auth_code',true);
21 +$wppm_can_create_project = ($current_user->has_cap('manage_options')) || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin';
22 +$wppm_can_create_project = apply_filters( 'wppm_can_create_project', $wppm_can_create_project, $current_user->ID, $id );
23 +$auth_id = $wppmfunction->get_project_fields($id,'project_auth_code',true);
22 24 $auth_id = sanitize_text_field($auth_id);
23 25 $project = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project where id = %d",$id));
24 26 $orderby_sql = (sanitize_sql_orderby("create_time DESC"));
25 27 // url authentication.
@@ -37,8 +39,21 @@
37 39 }else{
38 40 $users = "";
39 41 }
40 42 $wppm_users_role = get_option('wppm_user_role');
43 +$current_user_role='';
44 +if ( ! empty( $users ) && in_array( $current_user->ID, $users, true ) ) {
45 + $current_user_role = $wpdb->get_var(
46 + $wpdb->prepare(
47 + "SELECT role_id
48 + FROM {$wpdb->prefix}wppm_project_users
49 + WHERE proj_id = %d
50 + AND user_id = %d",
51 + $id,
52 + $current_user->ID
53 + )
54 + );
55 +}
41 56 if(isset($project->status)){
42 57 $projstatus = absint($project->status);
43 58 $project_status = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = %d",$projstatus));
44 59 }
@@ -130,32 +145,52 @@
130 145 }
131 146
132 147 $project_data = $wppmfunction->get_project($id);
133 148 $project_users = explode(",",$project_data['users']);
149 + if(!empty($id)){
150 + $project_id = esc_sql($id);
151 + $public_proj_meta = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= '$project_id' AND meta_key='public_project'");
152 +}else{
153 + $public_proj_meta ="";
154 +}
134 155
135 -if (!(($current_user->ID && $current_user->has_cap('manage_options')) || in_array($current_user->ID,$project_users) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ((!empty($auth_code)) && $url_auth==true))) {
156 +if (!(($current_user->ID && $current_user->has_cap('manage_options')) || in_array($current_user->ID,$project_users) || ((!in_array($current_user->ID,$project_users)) && $public_proj_meta == '1')|| ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ((!empty($auth_code)) && $url_auth==true))) {
136 157 ?>
137 158 <div style="align-item:center;" ><h6><?php esc_attr_e( 'Unauthorized access!', 'taskbuilder' ); ?></h6></div>
138 159 <?php
139 160 wp_die();
140 161 }
141 -
162 +if( $wppm_current_user_capability == 'wppm_admin' || $current_user->has_cap('manage_options') || $project_data['created_by']==$current_user->ID){
163 + $archive_style= "display:inline;";
164 +}else{
165 + $archive_style= "display:none;";
166 +}
142 167 ?>
143 168 <form id="wppm_open_project" method="post">
144 169 <div class="row">
145 170 <div class="col-sm-12">
146 171 <span class="wppm-heading-inline"><?php echo esc_html_e('Project','taskbuilder');?></span>
147 - <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin'){ ?>
172 + <?php if($wppm_can_create_project){ ?>
148 173 <span class="wppm-add-new-btn btn-primary" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" id="wppm_add_new_project_btn" onclick="wppm_add_new_project()"><span style="margin-right:5px;"><img id="wppm_add_new_project_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus_icon.svg'); ?>" alt="plus_icon"></span><span><?php echo esc_html_e('Add New','taskbuilder');?></span></span>
149 174 <?php } ?>
150 175 <span class="wppm-add-new-btn btn-primary" id="wppm_project_list" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" onclick="wppm_get_project_list()" ><span style="margin-right:5px;"><img id ="wppm_project_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/list-symbol.svg'); ?>" alt="list-symbol"></span><span><?php echo esc_html_e('Project List','taskbuilder');?></span></span>
176 + <span class="wppm-add-new-btn btn-primary"" id="wppm_archieve_project_btn" title="<?php echo ($project->is_archived==1 ) ? 'Restore Project' : 'Archive Project'; ?>" onclick="wppm_archive_project(<?php echo esc_attr($project->id) ?>,<?php echo esc_attr($project->is_archived) ?>)" style="<?php echo esc_attr($archive_style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/archive_project.svg'); ?>" alt="archive"><span style="margin-left:5px;"><?php echo ($project->is_archived==1 ) ? esc_html_e('Restore Project','taskbuilder') : esc_html_e('Archive Project','taskbuilder');?></span></span>
177 + <input type="hidden" name="wppm_archive_project_ajax_nonce" id="wppm_archive_project_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_archive_project_ajax_nonce' ) ); ?>">
178 + <!-- Dashboard Button -->
179 + <a class="wppm-add-new-btn btn-primary" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" href="<?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>">
180 + <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/dashboard.svg'); ?>" alt="dashboard_icon">
181 + <?php esc_html_e('Dashboard','taskbuilder'); ?>
182 + </a>
151 183 <span class="wppm-add-new-btn btn-primary" id="wppm_project_tasks" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" onclick="wppm_get_project_tasks(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id ="wppm_task_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/task_list.svg'); ?>" alt="task_list"></span><span><?php echo esc_html_e('Tasks','taskbuilder');?></span></span>
184 + <span class="wppm-add-new-btn btn-primary" id="wppm_project_tasks_kanban_view" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" onclick="wppm_get_project_tasks_kanban_view(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id ="wppm_task_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/kanban-svg.svg'); ?>" alt="task_list"></span><span><?php echo esc_html_e('Kanban View','taskbuilder');?></span></span>
152 185 <?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',$project->id)) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))? "display:inline":"display:none"; ?>
153 186 <span class="wppm-add-new-btn btn-primary" id="wppm_delete_project_btn" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;<?php echo esc_attr($style) ?>" onclick="wppm_delete_project(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id="wppm_delete_project_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/delete2.svg'); ?>" alt="delete"></span><span><?php echo esc_html_e('Delete','taskbuilder');?></span></span>
154 187 <?php $visibility_style = (($current_user->ID && ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && ($wppm_public_projects_permission==1))? "display:inline":"display:none"; ?>
155 188 <span class="wppm-add-new-btn btn-primary" id="wppm_project_visibility" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;<?php echo esc_attr($visibility_style) ?>" onclick="wppm_get_project_visibility(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id ="wppm_task_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/wppm_visibility.svg'); ?>" alt="project_visibility"></span><span><?php echo esc_html_e('Project Visibility','taskbuilder');?></span></span>
156 - <?php do_action('wppm_after_open_project_buttons',$project->id);?>
157 - </div>
189 + <?php do_action('wppm_after_open_project_buttons',$project->id); ?>
190 + <?php foreach ( wppm_get_locked_pro_addons_by_placement('toolbar') as $wppm_addon_key => $wppm_addon ) : ?>
191 + <a class="wppm-add-new-btn btn-primary wppm-locked-toolbar-btn" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" href="<?php echo esc_url( wppm_pro_upgrade_url() ); ?>" target="_blank" rel="noopener noreferrer" title="<?php echo esc_attr( sprintf( __( '%s is a Pro feature. Click to upgrade.', 'taskbuilder' ), $wppm_addon['label'] ) ); ?>"><span class="wppm-pro-icon-wrap" style="margin-right:5px;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/' . $wppm_addon['icon'] ); ?>" alt=""><span class="wppm-pro-badge-corner"><?php echo wppm_pro_badge_svg( 11 ); ?></span></span><span><?php echo esc_html( $wppm_addon['label'] ); ?></span></a>
192 + <?php endforeach; ?>
158 193 </div>
159 194 <div id="wppm_load_individual_project_container" class="row">
160 195 <div class="col-sm-8 wppm_body col-md-9">
161 196 <div class="row">
@@ -162,9 +197,10 @@
162 197 <div class="col-sm-12" id="wppm_project_details_container">
163 198 <div class="row">
164 199 <div class="col-sm-12">
165 200 <span class="wppm_project_label"> <?php echo isset($project->project_name) ? esc_html($project->project_name):"";
166 - if (($wppmfunction->has_project_permission('change_project_details',$id)) || ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) { ?>
201 + if ((($wppmfunction->has_project_permission('change_project_details',$id)) || ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && $project_data['is_archived']!=1) {
202 + ?>
167 203 <span id="wppm_individual_edit_project_subject" onclick="wppm_edit_proj_details(<?php echo esc_attr($id) ?>)" class="btn btn-sm wppm_action_btn" style="background-color:#FFFFFF !important;color:#000000 !important;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
168 204 <?php } ?>
169 205 </span>
170 206 </div>
@@ -251,12 +287,13 @@
251 287 ?>
252 288 <div class="col-sm-9 wppm_project_description">
253 289 <span><?php echo (!empty($project_description))? wp_kses(wpautop($project_description),$allowedtags):"" ?></span>
254 290 </div>
291 + <?php do_action('wppm_after_project_details_in_open_project',$project->id);?>
255 292 </div>
256 293 </div>
257 294 </div>
258 - <div id="wppm_proj_discussion_container" style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
295 + <div id="wppm_proj_discussion_container" style="<?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3|| $project_data['is_archived']==1) ? 'display:none;' : 'display:block;' ?>">
259 296 <div class="row">
260 297 <div class="col-sm-12" style="margin-top:5px;">
261 298 <span class="wppm_proj_discussion"><?php echo esc_html_e('Comment','taskbuilder')?></span><br>
262 299 </div>
@@ -284,9 +321,9 @@
284 321 <div class="wppm_proj_attachment_container col-sm-12" style="display:none;">
285 322 </div>
286 323 </div>
287 324 </div>
288 - <div class="wppm_thread_container" style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
325 + <div class="wppm_thread_container" style="<?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3 || $project_data['is_archived']==1) ? 'display:none;' : 'display:block;' ?>">
289 326 <?php
290 327 if(!empty($project_comment)){
291 328 foreach($project_comment as $comment){
292 329 $proj_comment_meta = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='".esc_sql($id)."' AND comment_id='".esc_sql($comment->id)."'");
@@ -448,9 +485,9 @@
448 485 <div class="wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3">
449 486 <div class="row wppm_widget" id="wppm_project_status_widget">
450 487 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
451 488 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder')?></h4>
452 - <?php $style = ($wppmfunction->has_project_permission('change_project_status',$id) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin')? "display:flex":"display:none"; ?>
489 + <?php $style = (($wppmfunction->has_project_permission('change_project_status',$id) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') && $project_data['is_archived']!=1)? "display:flex":"display:none"; ?>
453 490 <span class="wppm_edit_project_details_widget" style="<?php echo esc_attr($style) ?>" onclick="wppm_edit_project_status(<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
454 491 </div>
455 492 <hr class="widget_divider">
456 493 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
@@ -459,9 +496,9 @@
459 496 </div>
460 497 <div class="row wppm_widget" id="wppm_project_raisedby_widget">
461 498 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
462 499 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Project Creator','taskbuilder')?></span></h4>
463 - <?php if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'|| ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager')) { ?>
500 + <?php if (($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'|| ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager')) && $project_data['is_archived']!=1) { ?>
464 501 <span class="wppm_edit_project_details_widget" onclick="wppm_edit_project_creator(<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
465 502 <?php } ?>
466 503 </div>
467 504 <hr class="widget_divider"> <?php
@@ -482,9 +519,9 @@
482 519 </div>
483 520 <div class="row wppm_widget" id="wppm_project_users_widget_container">
484 521 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
485 522 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Users','taskbuilder')?></h4>
486 - <?php if ($wppmfunction->has_project_permission('assign_project_users',$id ) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') { ?>
523 + <?php if (($wppmfunction->has_project_permission('assign_project_users',$id ) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') && $project_data['is_archived']!=1) { ?>
487 524 <span class="wppm_edit_project_details_widget" onclick="wppm_get_users(<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
488 525 <?php } ?>
489 526 </div>
490 527 <hr class="widget_divider">
@@ -490,34 +527,36 @@
490 527 <hr class="widget_divider">
491 528 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
492 529 <div id="wppm_project_users">
493 530 <?php
494 - if(!(empty(array_filter($users)))){
495 - foreach($users as $user) {
496 - $user_data = get_userdata($user);
497 - $user = absint($user);
498 - $project_user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$id,$user));
499 - ?>
500 - <div style="padding:2px 0;">
501 - <span class="wppm_project_user_avatar"><?php echo (get_avatar($user, 25, "mysteryman")); ?></span>
502 - <span class="wppm_project_user_names" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html($user_data->display_name); ?></span>
503 - <?php
504 - if(!empty($wppm_users_role)){
505 - foreach($wppm_users_role as $key=>$role){
506 - if(!empty($role)){
507 - foreach($role as $k=>$val){
508 - if( !empty($project_user) && $key == $project_user->role_id){ ?>
509 - <span class="wppm_project_user_role" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>">(<?php echo esc_html($role['label']); ?>)</span><?php
531 + if(!empty($users)){
532 + if(!(empty(array_filter($users)))){
533 + foreach($users as $user) {
534 + $user_data = get_userdata($user);
535 + $user = absint($user);
536 + $project_user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$id,$user));
537 + ?>
538 + <div style="padding:2px 0;">
539 + <span class="wppm_project_user_avatar"><?php echo (get_avatar($user, 25, "mysteryman")); ?></span>
540 + <span class="wppm_project_user_names" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html($user_data->display_name); ?></span>
541 + <?php
542 + if(!empty($wppm_users_role)){
543 + foreach($wppm_users_role as $key=>$role){
544 + if(!empty($role)){
545 + foreach($role as $k=>$val){
546 + if( !empty($project_user) && $key == $project_user->role_id){ ?>
547 + <span class="wppm_project_user_role" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>">(<?php echo esc_html($role['label']); ?>)</span><?php
548 + }
510 549 }
511 550 }
512 551 }
513 552 }
514 - }
515 - ?>
516 - </div>
517 - <?php
518 - }
519 - } else {
553 + ?>
554 + </div>
555 + <?php
556 + }
557 + }
558 + }else {
520 559 ?><span class="wppm_project_users_not_assign_label" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>"> <?php echo esc_html_e('None','taskbuilder'); ?></span><?php
521 560 }
522 561 ?>
523 562 </div>