/**
  * @since 1.15
  * @return GravityView_Roles_Capabilities
  */
 public static function get_instance()
 {
     if (!self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Exemple #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));
 }
Exemple #4
0
 /**
  * Plugin activate function.
  *
  * @access public
  * @static
  * @return void
  */
 public static function activate()
 {
     // register post types
     GravityView_Post_Types::init_post_types();
     // register rewrite rules
     GravityView_Post_Types::init_rewrite();
     flush_rewrite_rules();
     // Update the current GV version
     update_option('gv_version', self::version);
     // Add the transient to redirect to configuration page
     set_transient('_gv_activation_redirect', true, 60);
     // Clear settings transient
     delete_transient('gravityview_edd-activate_valid');
     GravityView_Roles_Capabilities::get_instance()->add_caps();
 }
Exemple #5
0
 /**
  * Delete capabilities added by GravityView
  * @since 1.15
  * @return void
  */
 private function delete_capabilities()
 {
     GravityView_Roles_Capabilities::get_instance()->remove_caps();
 }
Exemple #6
0
 /**
  * Add GravityView user caps based on role
  * @since 1.15
  * @param WP_User $user
  */
 function _add_gravityview_caps(WP_User $user)
 {
     foreach ($user->roles as $role) {
         $capabilities = GravityView_Roles_Capabilities::all_caps($role);
         foreach ($capabilities as $cap) {
             $user->add_cap($cap, true);
         }
     }
 }