Change isOpInChannel to allow multiple different user roles
This commit is contained in:
parent
863e9b0b48
commit
c09f06fccc
@ -101,7 +101,7 @@ $(function() {
|
|||||||
|
|
||||||
const channel = target.closest(".chan");
|
const channel = target.closest(".chan");
|
||||||
|
|
||||||
if (utils.isOpInChannel(channel) && channel.data("type") === "channel") {
|
if (utils.hasRoleInChannel(channel, ["op"]) && channel.data("type") === "channel") {
|
||||||
output += templates.contextmenu_divider();
|
output += templates.contextmenu_divider();
|
||||||
output += templates.contextmenu_item({
|
output += templates.contextmenu_item({
|
||||||
class: "action-kick",
|
class: "action-kick",
|
||||||
|
@ -14,13 +14,13 @@ module.exports = {
|
|||||||
lastMessageId,
|
lastMessageId,
|
||||||
confirmExit,
|
confirmExit,
|
||||||
forceFocus,
|
forceFocus,
|
||||||
|
hasRoleInChannel,
|
||||||
move,
|
move,
|
||||||
resetHeight,
|
resetHeight,
|
||||||
setNick,
|
setNick,
|
||||||
toggleNickEditor,
|
toggleNickEditor,
|
||||||
toggleNotificationMarkers,
|
toggleNotificationMarkers,
|
||||||
requestIdleCallback,
|
requestIdleCallback,
|
||||||
isOpInChannel,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function findCurrentNetworkChan(name) {
|
function findCurrentNetworkChan(name) {
|
||||||
@ -39,13 +39,17 @@ function resetHeight(element) {
|
|||||||
element.style.height = element.style.minHeight;
|
element.style.height = element.style.minHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Given a channel element will determine if the lounge user is Op in that channel
|
// Given a channel element will determine if the lounge user is one of the supplied roles.
|
||||||
function isOpInChannel(channel) {
|
function hasRoleInChannel(channel, roles) {
|
||||||
|
if (!channel || !roles) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const channelID = channel.data("id");
|
const channelID = channel.data("id");
|
||||||
const network = $("#sidebar .network").has(`.chan[data-id="${channelID}"]`);
|
const network = $("#sidebar .network").has(`.chan[data-id="${channelID}"]`);
|
||||||
const ownNick = network.data("nick");
|
const ownNick = network.data("nick");
|
||||||
const isOP = channel.find(`.users .user-mode.op .user[data-name="${escape(ownNick)}"]`).length;
|
const user = channel.find(`.users .user[data-name="${escape(ownNick)}"]`).first();
|
||||||
return isOP;
|
return user.parent().is("." + roles.join(", ."));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Triggering click event opens the virtual keyboard on mobile
|
// Triggering click event opens the virtual keyboard on mobile
|
||||||
|
Loading…
Reference in New Issue
Block a user