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

index 346c44e..f42372d 100644 (file)
  * 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, view/members/index.html, Display Multi-Member (CVB) Packages tab
 add_filter('glm_members_permit_admin_members_packages_tab',
     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, view/members/packaging.html, Add a Multi-Member (CVB) Package
 add_filter('glm_members_permit_admin_members_packaging_add_package',
     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/packaging.html, Edit a Multi-Member (CVB) Package
 add_filter('glm_members_permit_admin_members_packaging_edit_package',
     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 Member Packages tab
 add_filter('glm_members_permit_admin_member_packages_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/packaging.html, View a Member Package
 add_filter('glm_members_permit_admin_member_packaging_add_package',
     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, Edit a Member Package
 add_filter('glm_members_permit_admin_member_packaging_edit_package',
     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);
     }
 );