misuzu/src/Users/role.php

60 lines
1.5 KiB
PHP
Raw Normal View History

2018-05-27 02:20:35 +02:00
<?php
use Misuzu\Database;
define('MSZ_ROLE_MAIN', 1);
function user_role_add(int $userId, int $roleId): bool
{
$addRole = Database::prepare('
2018-05-27 02:20:35 +02:00
INSERT INTO `msz_user_roles`
(`user_id`, `role_id`)
VALUES
(:user_id, :role_id)
');
$addRole->bindValue('user_id', $userId);
$addRole->bindValue('role_id', $roleId);
return $addRole->execute();
}
2018-05-27 03:59:57 +02:00
function user_role_remove(int $userId, int $roleId): bool
{
$removeRole = Database::prepare('
2018-05-27 03:59:57 +02:00
DELETE FROM `msz_user_roles`
WHERE `user_id` = :user_id
AND `role_id` = :role_id
');
$removeRole->bindValue('user_id', $userId);
$removeRole->bindValue('role_id', $roleId);
return $removeRole->execute();
}
function user_role_has(int $userId, int $roleId): bool
{
$hasRole = Database::prepare('
2018-05-27 03:59:57 +02:00
SELECT COUNT(`role_id`) > 0
FROM `msz_user_roles`
WHERE `user_id` = :user_id
AND `role_id` = :role_id
');
$hasRole->bindValue('user_id', $userId);
$hasRole->bindValue('role_id', $roleId);
return $hasRole->execute() ? (bool)$hasRole->fetchColumn() : false;
}
function user_role_set_display(int $userId, int $roleId): bool
{
if (!user_role_has($userId, $roleId)) {
return false;
}
$setDisplay = Database::prepare('
2018-05-27 03:59:57 +02:00
UPDATE `msz_users`
SET `display_role` = :role_id
WHERE `user_id` = :user_id
');
$setDisplay->bindValue('user_id', $userId);
$setDisplay->bindValue('role_id', $roleId);
return $setDisplay->execute();
}