decord/source/modules/channel_permissions/ChannelPermissionsUtils.tsx
2026-07-24 07:16:23 +00:00

472 lines
17 KiB
TypeScript

// Module ID: 8457
// Function ID: 67185
// Name: isAdmin
// Dependencies: [1352, 1391, 1911, 1917, 1849, 7565, 653, 1912, 1212, 483, 21, 3969, 1327, 3763, 8458, 1881, 4312, 2]
// Exports: canCreatePrivateChannel, extractPermissionOverwrites, getExistingMembersRows, getExistingRolesRowWithPermissionDisabled, getExistingRolesRows, getMembersRows, getPrivateChannelHintText, getRemoveTooltipHint, getRolesRows, getRolesRowsWithPermissionDisabled, getRowTypeLabel, grantUserChannelAccess, isEveryoneRoleId, isPrivateGuildChannel, isPrivateTextChannel, toggleChannelEveryonePermission
// Module 8457 (isAdmin)
import { isGuildVocalChannelType } from "_callSuper";
import { isGuildOwner } from "isGuildOwner";
import GuildRoleRecordTypeTag from "GuildRoleRecordTypeTag";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import closure_9 from "_isNativeReflectConstruct";
import { RowType } from "RowType";
import ME from "ME";
let closure_11;
let closure_12;
let closure_13;
let closure_6;
let closure_7;
function isAdmin(colorString) {
return callback(colorString, constants.ADMINISTRATOR);
}
function getRoleRowData(colorString) {
let flag = arg1;
if (arg1 === undefined) {
flag = false;
}
const tmp2 = isAdmin(colorString) ? RowType.ADMINISTRATOR : RowType.ROLE;
const obj = { rowType: tmp2 };
colorString = colorString.colorString;
if (null == colorString) {
colorString = closure_13;
}
obj.colorString = colorString;
({ name: obj.name, id: obj.id } = colorString);
obj.disabled = isAdmin(colorString) || flag;
obj.key = "" + tmp2 + ":" + colorString.id;
obj.tags = colorString.tags;
return obj;
}
function sortRoles(guildId, id) {
let num = 1;
let num2 = 1;
if (isAdmin(guildId)) {
num2 = 0;
}
if (isAdmin(id)) {
num = 0;
}
if (num2 !== num) {
let diff = num2 - num;
} else {
diff = require(1912) /* _createForOfIteratorHelperLoose */.compareGuildRoles(guildId, id);
const obj = require(1912) /* _createForOfIteratorHelperLoose */;
}
return diff;
}
function getNoRolesRow(intl) {
let stringResult = intl;
if (intl === undefined) {
intl = require(1212) /* getSystemLocale */.intl;
stringResult = intl.string(require(1212) /* getSystemLocale */.t["gnsna/"]);
}
const obj = { rowType: RowType.EMPTY_STATE, colorString: closure_13, name: stringResult, disabled: true, id: "EMPTY_STATE" };
const items = [obj];
return items;
}
function canAddPermissionInChannel(arg0, arg1, arg2, arg3) {
const currentUser = authStore.getCurrentUser();
if (null == currentUser) {
return false;
} else if (null == arg0) {
return currentUser.id !== arg1;
} else {
let tmp2 = arg0.permissionOverwrites[arg1];
let tmp3;
if (null != arg3) {
tmp3 = arg3[arg1];
}
if (null != tmp3) {
tmp2 = arg3[arg1];
}
let tmp4 = null == tmp2;
if (!tmp4) {
tmp4 = !importAll(483).has(tmp2.allow, arg2);
const obj = importAll(483);
}
return tmp4;
}
}
function getExistingRoles(guild, sortedRoles, channel, accessPermissions, arg4) {
let closure_0 = channel;
let closure_1 = accessPermissions;
let closure_2 = arg4;
return sortedRoles.filter((id) => {
let tmp = outer1_14(id);
if (!tmp) {
const tmp6 = outer1_18(closure_0, id.id, closure_1, closure_2);
let tmp7 = !tmp6;
if (!tmp6) {
tmp7 = !outer1_7(id);
}
tmp = tmp7;
}
return tmp;
});
}
function getAllExistingRolesWithPermission(arg0, arr, channel, MODERATE_STAGE_CHANNEL_PERMISSIONS, arg4) {
let closure_0 = channel;
let closure_1 = MODERATE_STAGE_CHANNEL_PERMISSIONS;
let closure_2 = arg4;
return arr.filter((id) => {
let hasItem = outer1_14(id);
if (!hasItem) {
const tmp6 = outer1_18(permissionOverwrites, id.id, closure_1, callback);
let tmp7 = !tmp6;
if (!tmp6) {
tmp7 = !outer1_7(id);
}
hasItem = tmp7;
}
if (!hasItem) {
const obj = callback(outer1_3[9]);
let allow;
if (null != permissionOverwrites.permissionOverwrites[id.id]) {
allow = tmp12.allow;
}
hasItem = obj.has(callback(outer1_3[9]).combine(id.permissions, allow), closure_1);
const obj2 = callback(outer1_3[9]);
}
return hasItem;
});
}
function getDisplayName(id, id2) {
nick = nick.getNick(id2.id, id.id);
if (null == nick) {
nick = importDefault(3969).getName(id);
const obj = importDefault(3969);
}
return nick;
}
function isDefaultMember(id, id2) {
return isGuildOwner(id2, id);
}
function getMemberRowData(id, id2) {
const tmp2 = isGuildOwner(id2, id) ? RowType.OWNER : RowType.MEMBER;
const obj = { rowType: tmp2, name: getDisplayName(id, id2), username: importDefault(3969).getUserTag(id), id: id.id, avatarURL: id.getAvatarURL(id2.id, 24), bot: id.bot, verifiedBot: id.isVerifiedBot(), disabled: isDefaultMember(id, id2), key: "" + tmp2 + ":" + id.id };
return obj;
}
function sortMembers(rowType, rowType2) {
if (rowType.rowType !== rowType2.rowType) {
let diff = rowType.rowType - rowType2.rowType;
} else {
const name = rowType.name;
const name2 = rowType2.name;
diff = name.toLocaleLowerCase().localeCompare(name2.toLocaleLowerCase());
const toLocaleLowerCaseResult = name.toLocaleLowerCase();
}
return diff;
}
function getExistingMembers(memberIds, channel, guild, accessPermissions, arg4) {
const _require = channel;
let closure_1 = guild;
let closure_2 = accessPermissions;
const dependencyMap = arg4;
const mapped = memberIds.map(authStore.getUser);
const found = mapped.filter(_require(1327).isNotNullish);
return found.filter((id) => {
const tmp = outer1_18(closure_0, id.id, closure_2, closure_3);
let tmp2 = !tmp;
if (tmp) {
tmp2 = outer1_22(id, closure_1);
}
return tmp2;
});
}
function flipEveryonePermission(guild_id, accessPermissions, result) {
let everyoneOverwrite = guild_id.permissionOverwrites[guild_id.guild_id];
if (null == everyoneOverwrite) {
let obj = importAll(3763);
everyoneOverwrite = obj.makeEveryoneOverwrite(guild_id.guild_id);
}
obj = {};
const merged = Object.assign(everyoneOverwrite);
obj.deny = importAll(483).remove(obj.deny, accessPermissions);
const obj3 = importAll(483);
obj.allow = importAll(483).remove(obj.allow, accessPermissions);
if (!result) {
obj.deny = importAll(483).add(obj.deny, accessPermissions);
const obj5 = importAll(483);
}
return obj;
}
({ hasPermission: closure_6, isEveryoneRole: closure_7 } = GuildRoleRecordTypeTag);
({ Permissions: closure_11, ChannelTypes: closure_12, DEFAULT_ROLE_COLOR_HEX: closure_13 } = ME);
const result = require("GuildRoleRecordTypeTag").fileFinishedImporting("modules/channel_permissions/ChannelPermissionsUtils.tsx");
export { getRoleRowData };
export { sortRoles };
export { getNoRolesRow };
export const isEveryoneRoleId = function isEveryoneRoleId(guildId, roleId) {
return importDefault(21).castGuildIdAsEveryoneGuildRoleId(guildId) === roleId;
};
export const getRolesRows = function getRolesRows(guild, stateFromStores, channel, permission, filterByQuery) {
let fn = filterByQuery;
let closure_0 = channel;
let closure_1 = permission;
if (filterByQuery === undefined) {
fn = function a() {
return true;
};
}
const found = stateFromStores.filter((id) => {
let tmp = !outer1_14(id);
if (tmp) {
tmp = outer1_18(closure_0, id.id, closure_1);
}
if (tmp) {
tmp = !outer1_7(id);
}
if (tmp) {
tmp = fn(id.name);
}
return tmp;
});
const sorted = found.sort(sortRoles);
return sorted.map((arg0) => outer1_15(arg0));
};
export const getRolesRowsWithPermissionDisabled = function getRolesRowsWithPermissionDisabled(guild, stateFromStores, channel, permission, filterByQuery) {
let fn = filterByQuery;
let closure_0 = channel;
let closure_1 = permission;
if (filterByQuery === undefined) {
fn = function u() {
return true;
};
}
const found = stateFromStores.filter((id) => {
let tmp = !outer1_14(id);
if (tmp) {
tmp = outer1_18(closure_0, id.id, closure_1);
}
if (tmp) {
tmp = !outer1_7(id);
}
if (tmp) {
tmp = fn(id.name);
}
return tmp;
});
const sorted = found.sort(sortRoles);
return sorted.map((arg0) => outer1_15(arg0, outer1_6(arg0, closure_1)));
};
export { getExistingRoles };
export { getAllExistingRolesWithPermission };
export const getExistingRolesRows = function getExistingRolesRows(guild, sortedGuildRoles, channel, accessPermissions) {
const sorted = getExistingRoles(0, sortedGuildRoles, channel, accessPermissions, arg4).sort(sortRoles);
let mapped = sorted.map((arg0) => outer1_15(arg0));
if (0 === mapped.length) {
const intl = require(1212) /* getSystemLocale */.intl;
mapped = getNoRolesRow(intl.string(require(1212) /* getSystemLocale */.t.nZfHsf));
}
return mapped;
};
export const getExistingRolesRowWithPermissionDisabled = function getExistingRolesRowWithPermissionDisabled(guild, sortedGuildRoles, channel, MODERATE_STAGE_CHANNEL_PERMISSIONS) {
const _require = MODERATE_STAGE_CHANNEL_PERMISSIONS;
const sorted = getAllExistingRolesWithPermission(0, sortedGuildRoles, channel, MODERATE_STAGE_CHANNEL_PERMISSIONS, arg4).sort(sortRoles);
let mapped = sorted.map((arg0) => outer1_15(arg0, outer1_6(arg0, closure_0)));
if (0 === mapped.length) {
const intl = _require(1212).intl;
mapped = getNoRolesRow(intl.string(_require(1212).t.nZfHsf));
}
return mapped;
};
export const getMembersRows = function getMembersRows(stateFromStoresArray, channel, guild, permission, filterByQuery) {
let fn = filterByQuery;
const _require = channel;
let closure_1 = guild;
let closure_2 = permission;
if (filterByQuery === undefined) {
fn = function a() {
return true;
};
}
const mapped = stateFromStoresArray.map(authStore.getUser);
const found = mapped.filter(_require(1327).isNotNullish);
const found1 = found.filter((id) => {
let tmp = !outer1_5(closure_1, id);
if (tmp) {
tmp = outer1_18(closure_0, id.id, closure_2);
}
if (tmp) {
let tmp8 = fn(outer1_21(id, closure_1));
if (!tmp8) {
tmp8 = fn(id.username);
}
if (!tmp8) {
tmp8 = fn(id.discriminator);
}
tmp = tmp8;
}
return tmp;
});
const mapped1 = found1.map((arg0) => outer1_23(arg0, closure_1));
return mapped1.sort(sortMembers);
};
export { getExistingMembers };
export const getExistingMembersRows = function getExistingMembersRows(memberIds, channel, guild, accessPermissions) {
let closure_0 = guild;
const mapped = getExistingMembers(memberIds, channel, guild, accessPermissions, arg4).map((arg0) => outer1_23(arg0, closure_0));
return mapped.sort(sortMembers);
};
export const getRowTypeLabel = function getRowTypeLabel(rowType) {
if (RowType.ROLE === rowType) {
const intl6 = require(1212) /* getSystemLocale */.intl;
return intl6.string(require(1212) /* getSystemLocale */.t.ZxoFOG);
} else if (RowType.OWNER === rowType) {
const intl5 = require(1212) /* getSystemLocale */.intl;
return intl5.string(require(1212) /* getSystemLocale */.t.NWhYJg);
} else if (RowType.ADMINISTRATOR === rowType) {
const intl4 = require(1212) /* getSystemLocale */.intl;
return intl4.string(require(1212) /* getSystemLocale */.t["dwlcc+"]);
} else if (RowType.MEMBER === rowType) {
let stringResult = null;
if (arg1) {
const intl3 = require(1212) /* getSystemLocale */.intl;
stringResult = intl3.string(require(1212) /* getSystemLocale */.t.UAJxZi);
}
return stringResult;
} else if (RowType.USER === rowType) {
const intl2 = require(1212) /* getSystemLocale */.intl;
return intl2.string(require(1212) /* getSystemLocale */.t.KD6OJJ);
} else if (RowType.GUILD === rowType) {
const intl = require(1212) /* getSystemLocale */.intl;
return intl.string(require(1212) /* getSystemLocale */.t["5qyruI"]);
} else if (RowType.EMPTY_STATE === rowType) {
return null;
}
};
export const getRemoveTooltipHint = function getRemoveTooltipHint(arg0) {
if (RowType.ROLE === arg0) {
const intl4 = require(1212) /* getSystemLocale */.intl;
return intl4.string(require(1212) /* getSystemLocale */.t["Gzc/a8"]);
} else if (RowType.OWNER === arg0) {
const intl3 = require(1212) /* getSystemLocale */.intl;
return intl3.string(require(1212) /* getSystemLocale */.t.icuNBM);
} else if (RowType.ADMINISTRATOR === arg0) {
const intl2 = require(1212) /* getSystemLocale */.intl;
return intl2.string(require(1212) /* getSystemLocale */.t.eTmN5a);
} else if (RowType.MEMBER === arg0) {
const intl = require(1212) /* getSystemLocale */.intl;
return intl.string(require(1212) /* getSystemLocale */.t["Gzc/a8"]);
} else {
const EMPTY_STATE = RowType.EMPTY_STATE;
return null;
}
};
export { flipEveryonePermission };
export const toggleChannelEveryonePermission = function toggleChannelEveryonePermission(guild_id, accessPermissions, result) {
const tmp = flipEveryonePermission(guild_id, accessPermissions, result);
require(8458) /* _updatePermission */.updatePermission(guild_id, tmp.id, tmp.allow, tmp.deny);
};
export const grantUserChannelAccess = function grantUserChannelAccess(id, accessPermissions) {
let allow;
let deny;
const currentUser = authStore.getCurrentUser();
if (null != currentUser) {
if (null == id.permissionOverwrites[currentUser.id]) {
let obj = { id: currentUser.id, type: require(1881) /* PermissionOverwriteType */.PermissionOverwriteType.MEMBER, allow: importAll(483).add(importAll(3763).NONE, accessPermissions), deny: importAll(3763).NONE };
const obj4 = importAll(483);
const items = [obj];
return require(8458) /* _updatePermission */.savePermissionUpdates(id.id, items, true);
} else {
({ allow, deny } = tmp2);
obj = importAll(483);
const obj2 = require(8458) /* _updatePermission */;
return obj2.updatePermission(id, tmp2.id, obj.add(allow, accessPermissions), deny);
}
}
};
export const isPrivateGuildChannel = function isPrivateGuildChannel(channel) {
if (null == channel) {
return false;
} else {
let tmp = channel.permissionOverwrites[channel.guild_id];
let tmp2;
if (null != arg1) {
tmp2 = arg1[channel.guild_id];
}
if (null != tmp2) {
tmp = arg1[channel.guild_id];
}
let hasItem = null != tmp;
if (hasItem) {
hasItem = importAll(483).has(tmp.deny, channel.accessPermissions);
const obj = importAll(483);
}
return hasItem;
}
};
export const isPrivateTextChannel = function isPrivateTextChannel(type) {
let hasItem = null != tmp;
if (hasItem) {
hasItem = type.type === constants2.GUILD_TEXT;
}
if (hasItem) {
hasItem = importAll(483).has(tmp.deny, constants.VIEW_CHANNEL);
const obj = importAll(483);
}
return hasItem;
};
export const canCreatePrivateChannel = function canCreatePrivateChannel(first1, canResult, canResult1) {
let tmp = canResult;
if (first1 !== constants2.GUILD_TEXT) {
tmp = canResult;
if (first1 !== constants2.GUILD_ANNOUNCEMENT) {
let tmp4 = !isGuildVocalChannelType(first1);
if (tmp4) {
tmp4 = first1 !== constants2.GUILD_CATEGORY;
}
if (!tmp4) {
let tmp6 = canResult;
if (canResult) {
tmp6 = canResult1;
}
tmp4 = tmp6;
}
tmp = tmp4;
}
}
return tmp;
};
export const getPrivateChannelHintText = function getPrivateChannelHintText(first1) {
if (constants2.GUILD_TEXT !== first1) {
if (constants2.GUILD_ANNOUNCEMENT !== first1) {
if (constants2.GUILD_VOICE === first1) {
const intl2 = require(1212) /* getSystemLocale */.intl;
return intl2.format(require(1212) /* getSystemLocale */.t.iZAMty, {});
} else if (constants2.GUILD_CATEGORY === first1) {
const intl = require(1212) /* getSystemLocale */.intl;
return intl.format(require(1212) /* getSystemLocale */.t.PhnARV, {});
} else {
return null;
}
}
}
const intl3 = require(1212) /* getSystemLocale */.intl;
return intl3.format(require(1212) /* getSystemLocale */.t.ZDtA0T, {});
};
export const extractPermissionOverwrites = function extractPermissionOverwrites(arg0, arg1) {
let closure_0 = arg1;
const items = [];
const values = Object.values(arg0);
const item = values.forEach((row) => {
row = row.row;
let tmp = null != row.id;
if (tmp) {
tmp = "" !== row.id;
}
if (tmp) {
if (row.rowType === outer1_10.ROLE) {
items.push(callback(outer1_3[16]).permissionOverwriteForRole(row.id, callback));
const obj = callback(outer1_3[16]);
} else if (row.rowType === outer1_10.MEMBER) {
items.push(callback(outer1_3[16]).permissionOverwriteForUser(row.id, callback));
const obj2 = callback(outer1_3[16]);
}
}
});
return items;
};