From 600fca2c41da0d8109434016a5bb6bdeca0e6ad8 Mon Sep 17 00:00:00 2001
From: hugosolar Pre-Approve
');
ccgn_application_users_page_pre_form ( $applicant_id );
} elseif ( $state == CCGN_APPLICATION_STATE_VOUCHING ) {
- echo _('Vote
');
- ccgn_application_users_page_vote_form ( $applicant_id );
- if ( ccgn_current_user_is_final_approver() ) {
+ if (ccgn_current_user_is_final_approver()) {
+ echo _('Vote
');
+ ccgn_application_users_page_vote_form ( $applicant_id );
echo _('Final Approval
');
ccgn_application_users_page_final_approval_form( $applicant_id );
}
diff --git a/plugins/cc-global-network/cc-global-network.php b/plugins/cc-global-network/cc-global-network.php
index 72a5389..50caa58 100644
--- a/plugins/cc-global-network/cc-global-network.php
+++ b/plugins/cc-global-network/cc-global-network.php
@@ -365,7 +365,8 @@ function ccgn_admin_enqueue_scripts($hook_suffix) {
'current_user' => get_current_user_id(),
'site_epoch' => CCGN_SITE_EPOCH,
'date_now' => date("Y-m-d"),
- 'ajax_url' => admin_url('admin-ajax.php')
+ 'ajax_url' => admin_url('admin-ajax.php'),
+ 'is_sub_admin' => (ccgn_current_user_is_sub_admin()) ? 'yes' : 'no'
));
}
}
diff --git a/plugins/cc-global-network/includes/buddypress-integration.php b/plugins/cc-global-network/includes/buddypress-integration.php
index 5d307fb..99f737a 100644
--- a/plugins/cc-global-network/includes/buddypress-integration.php
+++ b/plugins/cc-global-network/includes/buddypress-integration.php
@@ -73,6 +73,12 @@
define( 'CCGN_USER_ROLE_CC_LEGAL_TEAM', 'membership-cc-legal' );
+// User is a sub admin. new profile added on Octobre, 2018
+// The purpose is a rol that can only see some applications data on the admin screens
+// the sub-admin can't make any action
+
+define('CCGN_USER_ROLE_SUB_ADMIN', 'membership-cc-sub-admin');
+
// Which Field Groups different levels of registration/vouching can see
// Admin users are handled separately
@@ -135,6 +141,10 @@ function ccgn_add_roles_on_plugin_activation () {
$approver->add_cap( 'ccgn_view_applications' );
$legal->add_cap( 'ccgn_view_applications' );
+ $council->add_cap('ccgn_sub_admin_view');
+ $approver->add_cap('ccgn_sub_admin_view');
+ $legal->add_cap('ccgn_sub_admin_view');
+
$council->add_cap( 'ccgn_list_applications' );
$approver->add_cap( 'ccgn_list_applications' );
$legal->add_cap( 'ccgn_list_applications' );
@@ -144,8 +154,34 @@ function ccgn_add_roles_on_plugin_activation () {
$legal->add_cap( 'ccgn_list_applications_legal' );
// The Final Approver can list but not approve legal-stage applications
$approver->add_cap( 'ccgn_list_applications_legal' );
+ //Create sub_admin role
+ add_sub_admin_role();
}
+// The subadmin function have the permission to see the application list
+// but can not make any actions
+
+function add_sub_admin_role() {
+ $result = add_role(
+ CCGN_USER_ROLE_SUB_ADMIN,
+ 'CC Sub Administrator',
+ array()
+ );
+ if (null !== $result ) {
+ $sub_admin = get_role(CCGN_USER_ROLE_SUB_ADMIN);
+ $sub_admin->add_cap('ccgn_view_applications');
+ $sub_admin->add_cap('ccgn_list_applications');
+ $sub_admin->add_cap('ccgn_sub_admin_view');
+ $sub_admin->add_cap('ccgn_list_applications_legal');
+ }
+ $council = get_role(CCGN_USER_ROLE_MEMBERSHIP_COUNCIL);
+ $approver = get_role(CCGN_USER_ROLE_FINAL_APPROVER);
+ $legal = get_role(CCGN_USER_ROLE_CC_LEGAL_TEAM);
+
+ $council->add_cap('ccgn_sub_admin_view');
+ $approver->add_cap('ccgn_sub_admin_view');
+ $legal->add_cap('ccgn_sub_admin_view');
+}
function ccgn_user_is_new ( $user_id ) {
$new = true;
$user = get_user_by( 'ID', $user_id );
@@ -227,11 +263,22 @@ function ccgn_current_user_is_legal_team () {
}
return $is;
}
+function ccgn_current_user_is_sub_admin()
+{
+ $is = false;
+ if (is_user_logged_in()) {
+ $user_id = get_current_user_id();
+ $data = get_userdata($user_id);
+ $is = in_array(CCGN_USER_ROLE_SUB_ADMIN, $data->roles);
+ }
+ return $is;
+}
function ccgn_current_user_can_see_user_application_page () {
return ccgn_current_user_is_membership_council ()
|| ccgn_current_user_is_final_approver ()
- || ccgn_current_user_is_legal_team ();
+ || ccgn_current_user_is_legal_team ()
+ || ccgn_current_user_is_sub_admin();
}
////////////////////////////////////////////////////////////////////////////////