bindValue('perm_forum_id', $forum); $getPerms->bindValue('perm_user_id_user', $user); $getPerms->bindValue('perm_user_id_role', $user); return $getPerms->execute() ? (int)$getPerms->fetchColumn() : 0; } function forum_perms_get_role(string $prefix, int $forum, int $role): int { if (!in_array($prefix, MSZ_FORUM_PERM_MODES) || $role < 1) { return 0; } $getPerms = db_prepare(" SELECT BIT_OR(`{$prefix}_perms`) FROM `msz_forum_permissions_view` WHERE (`forum_id` = :forum_id OR `forum_id` IS NULL) AND `role_id` = :role_id AND `user_id` IS NULL "); $getPerms->bindValue('forum_id', $forum); $getPerms->bindValue('role_id', $role); return $getPerms->execute() ? (int)$getPerms->fetchColumn() : 0; } function forum_perms_get_user_raw(?int $forum, int $user): array { if ($user < 1) { return forum_perms_create(); } $getPerms = db_prepare(sprintf(' SELECT `' . implode('`, `', forum_perms_get_keys()) . '` FROM `msz_forum_permissions` WHERE `forum_id` %s AND `user_id` = :user_id AND `role_id` IS NULL ', $forum === null ? 'IS NULL' : '= :forum_id')); if ($forum !== null) { $getPerms->bindValue('forum_id', $forum); } $getPerms->bindValue('user_id', $user); $perms = db_fetch($getPerms); if (empty($perms)) { return forum_perms_create(); } return $perms; } function forum_perms_get_role_raw(?int $forum, ?int $role): array { if ($role < 1 && $role !== null) { return forum_perms_create(); } $getPerms = db_prepare(sprintf( ' SELECT `' . implode('`, `', forum_perms_get_keys()) . '` FROM `msz_forum_permissions` WHERE `forum_id` %s AND `user_id` IS NULL AND `role_id` %s ', $forum === null ? 'IS NULL' : '= :forum_id', $role === null ? 'IS NULL' : '= :role_id' )); if ($forum !== null) { $getPerms->bindValue('forum_id', $forum); } if ($role !== null) { $getPerms->bindValue('role_id', $role); } $perms = db_fetch($getPerms); if (empty($perms)) { return forum_perms_create(); } return $perms; }