PHP code example of icybee / module-users
1. Go to this page and download the library: Download icybee/module-users library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
icybee / module-users example snippets
use ICanBoogie\Module;
if ($user->has_permission('update own profile')
|| $user->has_permission(Module::PERMISSION_ADMINISTER, $app->modules['users']))
{
// …
}
use Icybee\Modules\Users\UserLacksPermission;
/* @var \Icybee\Modules\Users\User $user */
/* @var \ICanBoogie\Application $app */
/* @var string|int $permission */
$node = $app->models['nodes']->one;
try
{
$user->assert_permission($permission, $node);
// …
}
catch (UserLacksPermission $e)
{
var_dump($e->permission, $e->resource, $e->user);
}
$node = $app->models['nodes']->one;
if ($user->has_ownership($node))
{
// …
}
use Icybee\Modules\Users\UserLacksOwnership;
/* @var \Icybee\Modules\Users\User $user */
/* @var \ICanBoogie\Application $app */
$node = $app->models['nodes']->one;
try
{
$user->assert_ownership($node);
// …
}
catch (UserLacksOwnership $e)
{
var_dump($e->resource, $e->user);
}
// …/config/users.php
return [
'permission_resolver_list' => [
'a_resolver' => 'Hooks::my_permission_resolver',
'another_resolver' => 'MyPermissionResolverClass'
]
];
namespace Icybee\Modules\Users;
use ICanBoogie\ActiveRecord;
function(User $user, ActiveRecord $record)
{
$uid = $user->uid;
if ($uid == 1 || (!empty($record->uid) && $record->uid == $uid))
{
return true;
}
}
// …/config/users.php
return [
'ownership_resolver_list' => [
'a_resolver' => 'my_ownership_resolver',
'another_resolver' => 'MyOwnershipResolverClass'
]
];
// mymodule/config/users.php
namespace App\Modules\MyModule;
return [
'permission_resolver_list' => [
'mymodule' => [ PermissionResolver::class, 'weight' => -10 ]
],
'ownership_resolver_list' => [
'mymodule' => [ OwnershipResolver::class, 'weight' => 'before:roles' ]
]
];
// users.roles/config/users.php
namespace Icybee\Modules\Users\Roles;
return [
'permission_resolver_list' => [
'roles' => [ PermissionResolver::class, 'weight' => 0 ]
],
'ownership_resolver_list' => [
'roles' => [ OwnershipResolver::class, 'weight' => 10 ]
]
];