Updated permissions to use new glmMembersUserCan() function.
authorChuck Scott <cscott@gaslightmedia.com>
Thu, 13 Oct 2016 20:10:51 +0000 (16:10 -0400)
committerChuck Scott <cscott@gaslightmedia.com>
Thu, 13 Oct 2016 20:10:51 +0000 (16:10 -0400)
setup/permissions.php

index 5247085..a140d76 100644 (file)
@@ -115,184 +115,180 @@ add_filter('glm_members_locked_to_member_id',
  * to permit the action.
  *
  * Of course any of these may test more than one capability if that's desired.
+ *
+ * Since we have capabilities that only exist if a particular add-on (such as Contacts)
+ * has been loaded and activated, it can be helpful to be able to test for a capability
+ * for the current user and permit some action if that capability doesn't exist. The
+ * main plugin therefore provides the following globally accessible function that will
+ * return true if the capability doesn't exist, otherwise it respects the capability.
+ *
+ *  glmMembersUserCan('glm_members_edit_any_member', $permit);
+ *
+ *  $permit is a boolean set before this function call for passing on permissions.
  */
 
 // glm-member-db, views/admin/members/index.html, Display config data warnings
 add_filter('glm_members_permit_admin_members_index_member_config_warning',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_view_any_member');
+        return glmMembersUserCan('glm_members_view_any_member', $permit);
     }
 );
 
 // glm-member-db, views/members/index.html, Display Add New Member Button
 add_filter('glm_members_permit_admin_members_index_add_member',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit);
     }
 );
 
 // glm-member-db, view/member/index.html, Display Add New Member Information Version button
 add_filter('glm_members_permit_admin_member_index_add_member_info_version',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member') || current_user_can('glm_members_edit_my_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit) ||
+            glmMembersUserCan('glm_members_edit_my_member', $permit);
     }
 );
 
 // glm-member-db, view/member/index.html, Display form to edit base member data, otherwise show it.
 add_filter('glm_members_permit_admin_member_index_edit_member',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit);
     }
 );
 
 // glm-member-db, view/member/index.html, Display link to view/edit member information
 add_filter('glm_members_permit_admin_member_index_view_member_info_version',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_view_any_member') || current_user_can('glm_members_view_my_entity_info');
+        return glmMembersUserCan('glm_members_view_any_member', $permit) ||
+            glmMembersUserCan('glm_members_view_my_entity_info', $permit);
     }
 );
 
 // glm-member-db, view/member/index.html, Display Clone and Activate buttons for Member Information
 add_filter('glm_members_permit_admin_member_index_clone_activate_info_version',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member') || current_user_can('glm_members_edit_my_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit) ||
+            glmMembersUserCan('glm_members_edit_my_member', $permit);
     }
 );
 
 // glm-member-db, view/member/index.html, Display Contacts tab
 add_filter('glm_members_permit_admin_member_contacts_tab',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_view_any_member') || current_user_can('glm_members_view_my_member');
+        return glmMembersUserCan('glm_members_view_any_member', $permit) ||
+            glmMembersUserCan('glm_members_view_my_member', $permit);
     }
 );
 
 // glm-member-db, view/member/contacts.html, Add Contacts data
 add_filter('glm_members_permit_admin_member_contacts_add_contact',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member') || current_user_can('glm_members_edit_my_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit) ||
+            glmMembersUserCan('glm_members_edit_my_member', $permit);
     }
 );
 
 // glm-member-db, view/member/contacts.html, View Contact data
 add_filter('glm_members_permit_admin_member_contacts_view_contact',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_view_any_member') || current_user_can('glm_members_view_my_member');
+        return glmMembersUserCan('glm_members_view_any_member', $permit) ||
+            glmMembersUserCan('glm_members_view_my_member', $permit);
     }
 );
 
 // glm-member-db, view/admin/contacts/edit.html, Set as Primary Contact
 add_filter('glm_members_permit_admin_member_contacts_set_as_primary',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit);
     }
 );
 
 // glm-member-db, views/member/contacts.html, Edit Contact data
 add_filter('glm_members_permit_admin_member_contacts_edit_contact',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member') || current_user_can('glm_members_edit_my_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit) ||
+            glmMembersUserCan('glm_members_edit_my_member', $permit);
     }
 );
 
 // glm-member-db, view/dashboardWidget.html, Display members search and list
 add_filter('glm_members_permit_admin_widget_members',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_view_any_member') || current_user_can('glm_members_edit_my_member');
+        return glmMembersUserCan('glm_members_view_any_member', $permit) ||
+            glmMembersUserCan('glm_members_edit_my_member', $permit);
     }
 );
 
 // glm-member-db, view/dashboardWidget.html, Display warnings
 add_filter('glm_members_permit_admin_widget_warnings',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_members');
+        return glmMembersUserCan('glm_members_members', $permit);
     }
 );
 
 // glm-member-db, view/dashboardWidget.html, Display pending member info needing attention
 add_filter('glm_members_permit_admin_widget_pending_info',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_any_member');
+        return glmMembersUserCan('glm_members_edit_any_member', $permit);
     }
 );
 
 // glm-member-db, view/member/index.html, Display inactive member information in member info list
 add_filter('glm_members_permit_admin_member_index_list_inactive_info',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_moderate_my_member_info')
-            || current_user_can('glm_members_edit_my_member')
-            || current_user_can('glm_members_edit_any_member')
-            || current_user_can('glm_members_delete_my_entity_info')
-        ;
+        return glmMembersUserCan('glm_members_moderate_my_member_info', $permit) ||
+            glmMembersUserCan('glm_members_edit_my_member', $permit) ||
+            glmMembersUserCan('glm_members_edit_any_member', $permit) ||
+            glmMembersUserCan('glm_members_delete_my_entity_info', $permit);
     }
 );
 
 // glm-member-db, view/member/memberInfo.html, Permit editing of member information
 add_filter('glm_members_permit_admin_member_info_edit',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_my_member') || current_user_can('glm_members_edit_my_entity');
+        return glmMembersUserCan('glm_members_edit_my_member', $permit) ||
+            glmMembersUserCan('glm_members_edit_my_entity', $permit);
     }
 );
 
 // glm-member-db, view/admin/profile/index.html, Permit editing of own contact profile
 add_filter('glm_members_permit_admin_profile_index_edit_profile',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_edit_my_contact_info');
+        return glmMembersUserCan('glm_members_edit_my_contact_info', $permit);
     }
 );
 
 // Access admin Members menu
 add_filter('glm_members_menu_members',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_members');
+        return glmMembersUserCan('glm_members_members', $permit);
     }
 );
 
 // Access admin Member menu
 add_filter('glm_members_menu_member',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_member');
+        return glmMembersUserCan('glm_members_member', $permit);
     }
 );
 
 // Access admin Settings menu
 add_filter('glm_members_menu_settings',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_settings');
+        return glmMembersUserCan('glm_members_settings', $permit);
     }
 );
 
 // Access admin Management menu
 add_filter('glm_members_menu_management',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_management');
+        return glmMembersUserCan('glm_members_management', $permit);
     }
 );
 
 // Access admin Shortcodes menu
 add_filter('glm_members_menu_shortcodes',
     function($permit) {
-        if (!$permit) { return false; }
-        return current_user_can('glm_members_shortcodes');
+        return glmMembersUserCan('glm_members_shortcodes', $permit);
     }
 );