Пример #1
0
 public function __construct()
 {
     /** @define "$file_path" "./" */
     $file_path = plugin_dir_path(__FILE__);
     include_once $file_path . 'includes/class-gravityview-roles-capabilities.php';
     /**
      * Only delete content and settings if "Delete on Uninstall?" setting is "Permanently Delete"
      */
     $delete = $this->get_delete_setting();
     if (GravityView_Roles_Capabilities::has_cap('gravityview_uninstall') && 'delete' === $delete) {
         $this->fire_everything();
     }
 }
Пример #2
0
 /**
  * Alias of GravityView_Roles_Capabilities::has_cap()
  *
  * @since 1.15
  *
  * @see GravityView_Roles_Capabilities::has_cap()
  *
  * @param string|array $caps Single capability or array of capabilities
  * @param int $object_id (optional) Parameter can be used to check for capabilities against a specific object, such as a post or user
  * @param int|null $user_id (optional) Check the capabilities for a user who is not necessarily the currently logged-in user
  *
  * @return bool True: user has at least one passed capability; False: user does not have any defined capabilities
  */
 public static function has_cap($caps = '', $object_id = null, $user_id = null)
 {
     return GravityView_Roles_Capabilities::has_cap($caps, $object_id, $user_id);
 }
 /**
  * @covers GravityView_Roles_Capabilities::has_cap
  * @covers GVCommon::has_cap
  * @group metacaps
  */
 public function test_has_cap_single_post_cap()
 {
     $admin_id = $this->factory->user->create(array('user_login' => 'administrator', 'role' => 'administrator'));
     // Create a user with no capabilities
     $zero = $this->factory->user->create_and_set(array('user_login' => 'zero', 'role' => 'zero'));
     $admin_view_id = $this->factory->view->create(array('post_author' => $admin_id));
     $admin_private_view_id = $this->factory->view->create(array('post_author' => $admin_id, 'post_status' => 'private'));
     $this->assertTrue(!empty($admin_view_id));
     $zero_view_id = $this->factory->view->create(array('post_author' => $zero->ID));
     $this->assertTrue(!empty($zero_view_id));
     $this->assertFalse(GravityView_Roles_Capabilities::has_cap(array('edit_others_gravityviews', 'edit_gravityviews')));
     // Can't edit own View
     $this->assertFalse(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $zero_view_id));
     // Can't edit others' View
     $this->assertFalse(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $admin_view_id));
     $this->assertFalse(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $admin_private_view_id));
     $zero->add_cap('edit_gravityviews');
     $zero->add_cap('edit_published_gravityviews');
     // CAN edit own view
     $this->assertTrue(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $zero_view_id));
     // Still can't edit others' View
     $this->assertFalse(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $admin_view_id));
     $zero->add_cap('edit_others_gravityviews');
     // CAN edit others' View
     $this->assertTrue(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $admin_view_id));
     // Still can't edit other's PRIVATE View
     $this->assertFalse(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $admin_private_view_id));
     $zero->add_cap('edit_private_gravityviews');
     // And now user can edit other's PRIVATE View
     $this->assertTrue(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $admin_private_view_id));
     ###
     ### RESET $zero
     ###
     $zero->remove_all_caps();
     $zero->add_cap('gravityview_full_access');
     // With GV full access, $zero is a $hero
     $this->assertTrue(GravityView_Roles_Capabilities::has_cap('edit_gravityview', $admin_private_view_id));
 }