ロール

This commit is contained in:
2025-12-29 16:25:29 +09:00
parent 8c76fe2733
commit 863bdabf59
6 changed files with 99 additions and 13 deletions

View File

@@ -10,8 +10,8 @@ class BlogPost {
public function getPosts(string $section, ?\stdClass $user): array {
$path = ROOT.$section;
$posts = [];
$isMember = $user !== NULL;
$isStaff = $user !== NULL && $user->role === 1;
$isMember = $user !== NULL && $user->role !== \Roles::BANNED;
$isStaff = $user !== NULL && $user->role & (\Roles::ADMIN | \Roles::STAFF);
if (!is_dir($path)) return $posts;
$files = glob($path.'/*.md');

View File

@@ -113,8 +113,8 @@ class Home extends BlogPost {
// ユーザー
$auth = new Auth();
$user = $auth->getLoggedInUser();
$isMember = $user !== NULL;
$isStaff = $user !== NULL && $user->role === 1;
$isMember = $user !== NULL && $user->role !== \Roles::BANNED;
$isStaff = $user !== NULL && $user->role & (\Roles::ADMIN | \Roles::STAFF);
$tmpl->assign('user', $user);
$tmpl->assign('pagetit', $pagetit);

View File

@@ -96,7 +96,7 @@ class Page {
$tmpl->assign('menu', $this->getMenu());
$tmpl->assign('description', $description);
if ($user && $user->role != -1) $tmpl->render('memberonly');
if ($user && $user->role !== \Roles::BANNED) $tmpl->render('memberonly');
else $tmpl->render('nopermission');
} catch (\Exception $e) {
throw new \Exception($e->getMessage());
@@ -121,7 +121,7 @@ class Page {
$tmpl->assign('menu', $this->getMenu());
$tmpl->assign('description', $description);
if ($user && $user->role == 1) $tmpl->render('staffonly');
if ($user && $user->role & (\Roles::ADMIN | \Roles::STAFF)) $tmpl->render('staffonly');
else $tmpl->render('nopermission');
} catch (\Exception $e) {
throw new \Exception($e->getMessage());

View File

@@ -40,13 +40,13 @@ class Auth {
unset($user->password);
unset($user->tokens);
$myself = $this->getUserData();
if ($myself->role === 1) {
if ($myself->role & (\Roles::PLAYSTATIONNDA | \Roles::NINTENDONDA | \Roles::MEMBER | \Roles::BANNED)) {
unset($user->email);
}
$user->name = namecolor($user);
$user->regDate = date('Y年m月d日', $user->regDate);
$user->gender = $user->gender === 0 ? '男' : ($user->gender === 1 ? '女' : '不明');
$user->role = $user->role === 1 ? '管理者' : ($user->role === -1 ? 'BANされた' : 'ユーザー');
$user->role = $user->role & (\Roles::ADMIN | \Roles::STAFF) ? '管理者' : ($user->role === \Roles::BANNED ? 'BANされた' : 'ユーザー');
$user->avatar = '/static/user/'.($user->avatar === '' ? 'noicon.png' : $user->username.'/'.$user->avatar);
$user->altName = $user->displayname ?: $user->username;
unset($user->username);
@@ -199,7 +199,7 @@ class Auth {
$user->namecolor = '';
$user->displayname = '';
$user->gender = -1;
$user->role = 0;
$user->role = \Roles::MEMBER;
$user->tokens = [];
$path = "{$this->dataDir}{$lastId}.{$username}.json";