public function test_user_permissions() { $mock_permissions = array('test system' => array('administrator'), 'view site' => array('anonymous', 'administrator', 'authenticated'), 'access strange feature' => array('authenticated'), 'browse around' => array('ALL')); $mock_authenticated = array('name' => 'authenticated'); $user_authenticated = new User_entity($mock_authenticated); $user_authenticated->set_permissions_array($mock_permissions); $user_authenticated->set_logged(); $this->assertTrue($user_authenticated->has_permission('view site')); $this->assertFalse($user_authenticated->has_permission('test system')); $mock_various = array('name' => 'Various', 'roles' => array('administrator')); $user_various = new User_entity($mock_various); $user_various->set_permissions_array($mock_permissions); $user_various->set_logged(); $this->assertTrue($user_various->has_permission('view site')); $this->assertTrue($user_various->has_permission('browse around')); $mock_anonymous = array('name' => 'anonymous'); $user_anonymous = new User_entity($mock_anonymous); $user_anonymous->set_permissions_array($mock_permissions); $user_anonymous->set_logged(FALSE); $expected = array('view site', 'browse around'); $this->assertEquals($expected, $user_anonymous->all_permissions()); }
/** * Creates User_entity injecting dependencies. * Input params must be the same as in the __construct * * @access public * @static * * @param array * User data to construct the user. * * @return User_entity */ public static function build($user_data) { $user = new User_entity($user_data); $CI = get_instance(); // Inject dependencies. $user->set_permissions_array($CI->config->item('permissions'))->set_roles_labels($CI->config->item('roles')); return $user; }