Make default permission setting functional

This commit is contained in:
Cadence Ember
2026-03-14 20:23:43 +13:00
parent cb4e8df91e
commit e6c3013993
5 changed files with 37 additions and 12 deletions
+11 -1
View File
@@ -5,7 +5,7 @@ const assert = require("assert").strict
const {reg} = require("../matrix/read-registration")
const {db} = require("../passthrough")
const {db, select} = require("../passthrough")
/** @type {import("xxhash-wasm").XXHashAPI} */ // @ts-ignore
let hasher = null
@@ -58,6 +58,15 @@ function getPermissions(guildID, userRoles, guildRoles, userID, channelOverwrite
return allowed
}
/**
* @param {{id: string, roles: DiscordTypes.APIGuild["roles"]}} guild
* @param {DiscordTypes.APIGuildChannel["permission_overwrites"]} [channel]
*/
function getDefaultPermissions(guild, channel) {
const defaultRoles = select("role_default", "role_id", {guild_id: guild.id}).pluck().all()
return getPermissions(guild.id, defaultRoles, guild.roles, undefined, channel)
}
/**
* Note: You can only provide one permission bit to permissionToCheckFor. To check multiple permissions, call `hasAllPermissions` or `hasSomePermissions`.
* It is designed like this to avoid developer error with bit manipulations.
@@ -174,6 +183,7 @@ function filterTo(xs, fn) {
}
module.exports.getPermissions = getPermissions
module.exports.getDefaultPermissions = getDefaultPermissions
module.exports.hasPermission = hasPermission
module.exports.hasSomePermissions = hasSomePermissions
module.exports.hasAllPermissions = hasAllPermissions