expose userclass / permissions
This commit is contained in:
parent
90dd842a7c
commit
010f976af5
2 changed files with 20 additions and 0 deletions
|
@ -31,6 +31,7 @@ class User
|
||||||
public ?string $email;
|
public ?string $email;
|
||||||
public string $join_date;
|
public string $join_date;
|
||||||
public ?string $passhash;
|
public ?string $passhash;
|
||||||
|
#[Field]
|
||||||
public UserClass $class;
|
public UserClass $class;
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
|
@ -4,6 +4,10 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Shimmie2;
|
namespace Shimmie2;
|
||||||
|
|
||||||
|
use GQLA\Type;
|
||||||
|
use GQLA\Field;
|
||||||
|
use GQLA\Query;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @global UserClass[] $_shm_user_classes
|
* @global UserClass[] $_shm_user_classes
|
||||||
*/
|
*/
|
||||||
|
@ -13,8 +17,10 @@ $_shm_user_classes = [];
|
||||||
/**
|
/**
|
||||||
* Class UserClass
|
* Class UserClass
|
||||||
*/
|
*/
|
||||||
|
#[Type(name: "UserClass")]
|
||||||
class UserClass
|
class UserClass
|
||||||
{
|
{
|
||||||
|
#[Field]
|
||||||
public ?string $name = null;
|
public ?string $name = null;
|
||||||
public ?UserClass $parent = null;
|
public ?UserClass $parent = null;
|
||||||
public array $abilities = [];
|
public array $abilities = [];
|
||||||
|
@ -33,6 +39,19 @@ class UserClass
|
||||||
$_shm_user_classes[$name] = $this;
|
$_shm_user_classes[$name] = $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[Field(type: "[String!]!")]
|
||||||
|
public function permissions(): array
|
||||||
|
{
|
||||||
|
global $_all_false;
|
||||||
|
$perms = [];
|
||||||
|
foreach ((new \ReflectionClass('\Shimmie2\Permissions'))->getConstants() as $k => $v) {
|
||||||
|
if ($this->can($v)) {
|
||||||
|
$perms[] = $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $perms;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if this class of user can perform an action or has ability.
|
* Determine if this class of user can perform an action or has ability.
|
||||||
*
|
*
|
||||||
|
|
Reference in a new issue