Skip to content

Commit

Permalink
Fix Admin Command (#204)
Browse files Browse the repository at this point in the history
* migrate from insou api to circles for the handbook commands (#128)

* migrate from insou api to circles for the handbook commands

* remove trailing forward slash in handbook.json

* handbook: the handbook is fixed

* Update handbook.js

commented out a console.log

---------

Co-authored-by: tunein <z5371683@ad.unsw.edu.au>
Co-authored-by: zcDay1 <113964162+zcDay1@users.noreply.github.com>

* prettier formatted

* chore(deps): update `renovate` config

* chore(deps): update docker/build-push-action action to v4 (#134)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Projects description command feature (#145)

* projects-descriptions v1 commit

* project-descriptions command v2 commit

* linting fixes for project-descriptions.js, and for handbook.js

---------

Co-authored-by: AcdSoftCo <106219586+AcdSoftCo@users.noreply.github.com>

* disable annoying carrotboard pins

* rolesPermOverride command is a script or one-time use command to attach every course role with permissions to view and send messages in any text channel with identical name. Please review and test before merging

* Revert "rolesPermOverride command is a script or one-time use command to attach every course role with permissions to view and send messages in any text channel with identical name. Please review and test before merging"

This reverts commit 2f59c71.

* rolesPermOverride command  (#152)

* rolesPermOverride command is a script or one-time use command to attach every course role with permissions to view and send messages in any text channel with identical name. Please review and test before mergin

* BUGGY CODE but still progress over the previous commit, I will come back this evening to fix

* rolesPermOverride command: now admin-only command, and I've tested it for various cases regarding if a channel exists, if a role exists for a channel that doesnt exist, if there are two channels with the same name as a role and vice versa, and it works without error

---------

Co-authored-by: AcdSoftCo <106219586+AcdSoftCo@users.noreply.github.com>

* Roles perm override (#153)

* rolesPermOverride command is a script or one-time use command to attach every course role with permissions to view and send messages in any text channel with identical name. Please review and test before mergin

* BUGGY CODE but still progress over the previous commit, I will come back this evening to fix

* rolesPermOverride command: now admin-only command, and I've tested it for various cases regarding if a channel exists, if a role exists for a channel that doesnt exist, if there are two channels with the same name as a role and vice versa, and it works without error

* course.js: removed code to create individual user permission overwrites in each channel

---------

Co-authored-by: AcdSoftCo <106219586+AcdSoftCo@users.noreply.github.com>

* Project descriptions (#154)

* project-descriptions.js: updated course descriptions written by the directors for 2023 levelling up with Projects Fair Day, and the discord bot CTF flag easter egg entry under this command included too for this event.

* made messages ephemeral to prevent chat from being spammed by users. And got rid of link embeds in the messages.

* lint update

---------

Co-authored-by: AcdSoftCo <106219586+AcdSoftCo@users.noreply.github.com>

* Dev/course channel fix 3 (#158)

* course-chat-fix-2, make new roles where there arent any in /rolespermoverride and also remove individual permission overwrites, and also updates to /course join to catch when there doesn't exist a role for a course and also /course leave to attempt to remove individual permission overwrites along with removing course role PLEASE TEST THOROUGHLY AND INSPECT CODE THOROUGHLY. I wrote this ASAP and haven't got time to properly review it.

* Modified functions for course channel fixes

* Check for if user only has read perms for overwrite replacing and fix looping over members

* Fix to functionality of iteration and editing roles

* Fix to initial working state

* Fix linting

* Additional fixes to ordering and component operations to remove role and individual permissions correctly

* Appended filter for both view only perms and view + send messages perms

---------

Co-authored-by: AcdSoftCo <106219586+AcdSoftCo@users.noreply.github.com>
Co-authored-by: Wolfdragon24 <dragonbomber24@gmail.com>

* dev/course-channel-fix-5 (#160)

* course-chat-fix-2, make new roles where there arent any in /rolespermoverride and also remove individual permission overwrites, and also updates to /course join to catch when there doesn't exist a role for a course and also /course leave to attempt to remove individual permission overwrites along with removing course role PLEASE TEST THOROUGHLY AND INSPECT CODE THOROUGHLY. I wrote this ASAP and haven't got time to properly review it.

* Modified functions for course channel fixes

* Check for if user only has read perms for overwrite replacing and fix looping over members

* Fix to functionality of iteration and editing roles

* Fix to initial working state

* Fix linting

* Additional fixes to ordering and component operations to remove role and individual permissions correctly

* Appended filter for both view only perms and view + send messages perms

* Appended single channel mode for permissions override

* Appended check command for role permissions

* Resolved merge conflicts in dev/course-channel-fix-4

---------

Co-authored-by: AcdSoftCo <106219586+AcdSoftCo@users.noreply.github.com>
Co-authored-by: Wolfdragon24 <dragonbomber24@gmail.com>

* Update rolesPermOverride.js

double equals updated to triple equals on line 156

* Course Command Fixing - Collection Null Value Error (#162)

* Accounting for non-channel returns associated to snowflakes

* Utilise cache directly as fetch falls back to a cache call anyway

* Dev/upgrade handbook url (#164)

* Upgraded handbook url in config.json to use 2024. Also fixed incorrect url links in the handbook.js command.

* Fixed eslint warnings

* Fixed bug for courses that do not yet have an offering term (Default: "None") (#165)

* Upgraded handbook url in config.json to use 2024. Also fixed incorrect url links in the handbook.js command.

* Fixed eslint warnings

* Fixed equivalent courses urls being listed

* Implementation of the Lunch Buddy feature (#167)

* update: checking if perms work

* Chron job set for every minute, basic embed added and structure for the locations and sub locations created

* Updated README

* Implemented area voting system

* Ran linting and prettier for current changes

* Appending location poll for given area, and vote counting for both area and locations

* Implemented functional voting system for area and location, creating thread upon completion of set

* Used await and cleaned up a bit of code, thread now adds all voters not only the ones who voted for the winning area

* Lint fix

* Removed promises and adjusted placement of vote function calls

* Adjusted thread users, append location vote pings

* Linting fixes

* Locations Update

* Adds "any" option and append additional vote info

* Appended code for live run timing

* Update to use config file

* Allow disabling of feature without editing code and disable

* Minor adjustment to readme and npm commands

* Appended clarifying comment regarding edge case of only any votes

---------

Co-authored-by: mi-mott <98304083+mi-mott@users.noreply.github.com>

* [DISC-107] Adding csesocLinks to get CSESoc related links (#170)

* completed csesocLinks command

* linting

* Refactor execute function to use arrow functions

* linting

* [DISC-109] Adding bot-status for events and member count (#169)

* Adding bot-status for events and member count

* Fixing lint errors

* Adding fixes to how member count is calculated

---------

Authored-by: Eric <eric.wu3@student.unsw.edu.au>

* Update dependency nodemailer to v6.9.9 [SECURITY] (#168)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency axios to v0.28.0 [SECURITY] (#166)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency yaml to v2.2.2 [security] (#147)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency dotenv to v16 (#141)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update actions/checkout action to v4 (#157)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency discordjs-button-pagination to v3 (#140)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Remove unused discord-tictactoe dependency and updated canvas (#173)

* fix(deps): update weekly patch updates (#142)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @discordjs/builders to v1 (#135)

* Update dependency @discordjs/builders to v1

* Update to project description choices to utilise object structure (Fix to erroring on dependency update)

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wolfdragon24 <dragonbomber24@gmail.com>
Co-authored-by: Wolfdragon24 <31204305+Wolfdragon24@users.noreply.github.com>

* fix(deps): update dependency discord.js to v14 (#139)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update to fix v14 breaking changes (#176)

* chore(deps): update actions/setup-node action to v4 (#172)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Nitpick refactor for courses command (#126)

* I can finally sleep now

* Implementation of suggested modifications

* Modification to ensure correct regex form for case-insensitive match

---------

Co-authored-by: Wolfdragon24 <dragonbomber24@gmail.com>

* fix(deps): update dependency mathjs to v12 (#182)

* chore(deps): update docker-github-actions

* fix(deps): update dependency mathjs to v12

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency axios to v1 (#181)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @discordjs/rest to v2 (#179)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-config-prettier to v9 (#175)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency nodemon to v3 (#183)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update node.js to v20 (#171)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency mathjs to v13 (#184)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* DISC-119-unielectives-review (#188)

* working unilectives review

* added warning for chartjs dependency

* changed to ephemeral reply

* removed unneccesary libraries for chartjs

* hopefully no npm package conflict dying

* npm packages should be fixed

* changed web scraper package for robustness

* linting

* fixed yaml npm issue

* JSCode docu

* linting

* revert config files to og

* package-json changes

---------

Co-authored-by: addison <h34312575s@gmail.com>

* [DISC-120] Update eslint dependency and nodejs to v20

* chore(deps): update dependency eslint to v9

* Update to eslint and babel/eslint-parser

* Update lock file

* Fixes for linting

* Modifications to ignore node modules and consider all other files for linting

* Force update of node to version 20

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wolfdragon24 <dragonbomber24@gmail.com>

* [DISC-120] Update to prettier and corresponding eslint plugin

* chore(deps): update dependency prettier to v3

* Update prettier config to use auto end of line setting

* Linting and prettifying

* Prettier fixes and running format

* Prettier fix

* Fix by consolidating updates to prettier and eslint plugin

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Wolfdragon24 <dragonbomber24@gmail.com>

* chore(deps): lock file maintenance (#186)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update weekly minor updates (#143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [DISC-120] Fix to renovate.json file (#190)

* [DISC-120] Declare file type for requiring data (#192)

* [DISC-120] Adjust data type for file (#193)

* Declare file type for requiring data

* Use json as opposed to js data file

* [DISC-120] Move to using fs for configuration (#194)

* Declare file type for requiring data

* Use json as opposed to js data file

* Replace require to use reading file with fs

* Move file to config

* Fix spelling error

* Append setup command for puppeteer browser

* Downloading dependencies and requirements for puppeteer

* Modification to installation order

* Affirm installation

* Revert prior changes and set to use alternate folder for chromium instance

* Manually ignore puppeteer config file in eslint

* Attempt fix to eslint hanging

* [DISC-117] Adding travelguides command (#187)

* initial travelguide add subcommand

* fixing formatting

* fixing syntax error

* added get function

* linting

* completed travelguide command

* linting

* adding deletion confirmation

* linting

* migrating travelguide.json to postgres

* linting

* linting

---------

Co-authored-by: Jessica Xu <jessica.xu3@student.unsw.edu.au>

* Modify location and method for chromium install

* Alter setup to use chromium base

* Update to puppeteer version

* Replace secondary node image with puppeteer

* Fix capitalisation inconsistency and assume permission set

* Reappend entrypoint permission modification

* Reset user from image setup

* Attempt return to puppeteer user after setup

* [DISC-110] Adding Course Chats 1-year "Subscription" (#191)

* Added database implementation of user roles when assigned and removed

* Added time checking function for expired user_roles and added time assigned column to user_roles table

* Added on ready file with cron.js to perform daily check of old_roles

* Adding new package cron for scheduling

* fixing lint issues

* Fixing prettier issues

* Package changes

* Restoring develop package lock.json and fixing db_ready

* Moving guild and roles out of for loop to remove redundant fetching

* [DISC-121] Implement Logging for User Rejoining (#199)

* Implementation of user join and leave logging and admin command to facilitate replacing old db table

* Complete implementation of rejoin notices

* Fix to incorrect conflict resolution commit

* Minor fixes to Admin Command (#203)

* Update permission field to use new reference

* Fix function call name

* Fixes to allow functioning of admin delete command

* Append additional table creation after removing old table

---------

Co-authored-by: imagine-hussain <93496985+imagine-hussain@users.noreply.github.com>
Co-authored-by: tunein <z5371683@ad.unsw.edu.au>
Co-authored-by: zcDay1 <113964162+zcDay1@users.noreply.github.com>
Co-authored-by: AcdSoftCo <106219586+AcdSoftCo@users.noreply.github.com>
Co-authored-by: Jared L <48422312+lhjt@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: abiramen <7523422+abiramen@users.noreply.github.com>
Co-authored-by: Bigbugman <101852152+Bigbugman@users.noreply.github.com>
Co-authored-by: Abraham Assariparambil Earnest <44077482+abe123442@users.noreply.github.com>
Co-authored-by: mi-mott <98304083+mi-mott@users.noreply.github.com>
Co-authored-by: chlowoee <98923921+chlowoee@users.noreply.github.com>
Co-authored-by: ericwu2205 <143063143+ericwu2205@users.noreply.github.com>
Co-authored-by: XenocidePC <34413724+XenocidePC@users.noreply.github.com>
Co-authored-by: h34312575s <134785889+h34312575s@users.noreply.github.com>
Co-authored-by: addison <h34312575s@gmail.com>
Co-authored-by: Jessica Xu <jessica.xu3@student.unsw.edu.au>
  • Loading branch information
17 people authored Aug 8, 2024
1 parent f3fe5e4 commit 3fcb115
Show file tree
Hide file tree
Showing 9 changed files with 20 additions and 19 deletions.
4 changes: 2 additions & 2 deletions commands/admin-standup.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { SlashCommandBuilder } = require("@discordjs/builders");
const { EmbedBuilder, ButtonBuilder, Permissions } = require("discord.js");
const { EmbedBuilder, ButtonBuilder, PermissionsBitField } = require("discord.js");
const paginationEmbed = require("discordjs-button-pagination");

module.exports = {
Expand Down Expand Up @@ -28,7 +28,7 @@ module.exports = {
const standupDB = global.standupDBGlobal;
const TEAM_DIRECTOR_ROLE_ID = "921348676692107274";
if (
!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR) &&
!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator) &&
!interaction.member._roles.includes(TEAM_DIRECTOR_ROLE_ID)
) {
return await interaction.reply({
Expand Down
10 changes: 6 additions & 4 deletions commands/admin.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { SlashCommandBuilder } = require("@discordjs/builders");
const { Permissions } = require("discord.js");
const { PermissionsBitField } = require("discord.js");

const COMMAND_KICKUNVERIFIED = "kickunverified";
const COMMAND_DROPUSERTABLE = "dropusertable";
Expand All @@ -20,7 +20,7 @@ module.exports = {
),
async execute(interaction) {
try {
if (!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) {
return await interaction.reply({
content: "You do not have permission to execute this command.",
ephemeral: true,
Expand Down Expand Up @@ -63,9 +63,11 @@ module.exports = {
return await interaction.reply("Removed unverified members.");
} else if (interaction.options.getSubcommand() === COMMAND_DROPUSERTABLE) {
const userDB = global.userDB;
await userDB.drop_table();

return await interaction.editReply("Deleted user table.");
await userDB.deleteUsers();
await userDB.create_table_users();

return await interaction.reply("Deleted user table.");
}

return await interaction.reply("Error: unknown subcommand.");
Expand Down
4 changes: 2 additions & 2 deletions commands/anonymouspost.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const { SlashCommandBuilder } = require("@discordjs/builders");
const { allowedChannels } = require("../config/anon_channel.json");
const paginationEmbed = require("discordjs-button-pagination");
const fs = require("fs");
const { Util, EmbedBuilder, ButtonBuilder, Permissions } = require("discord.js");
const { Util, EmbedBuilder, ButtonBuilder, PermissionsBitField } = require("discord.js");
module.exports = {
data: new SlashCommandBuilder()
.setName("anonymouspost")
Expand Down Expand Up @@ -125,7 +125,7 @@ module.exports = {
}

// Admin permission check
if (!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) {
return await interaction.reply({
content: "You do not have permission to execute this command.",
ephemeral: true,
Expand Down
4 changes: 2 additions & 2 deletions commands/faqadmin.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// @ts-check
const { SlashCommandBuilder, SlashCommandSubcommandBuilder } = require("@discordjs/builders");
const { Permissions } = require("discord.js");
const { PermissionsBitField } = require("discord.js");

// ////////////////////////////////////////////
// //////// SETTING UP THE COMMANDS ///////////
Expand Down Expand Up @@ -46,7 +46,7 @@ async function handleInteraction(interaction) {
const faqStorage = global.faqStorage;

// Admin permission check (this may not work uhm)
if (!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) {
await interaction.reply({
content: "You do not have permission to execute this command.",
ephemeral: true,
Expand Down
4 changes: 2 additions & 2 deletions commands/logreport.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { SlashCommandBuilder } = require("@discordjs/builders");
const { Permissions } = require("discord.js");
const { PermissionsBitField } = require("discord.js");
const path = require("path");
const nodemailer = require("nodemailer");

Expand Down Expand Up @@ -44,7 +44,7 @@ module.exports = {

async execute(interaction) {
try {
if (!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) {
await interaction.reply({
content: "You do not have permission to execute this command.",
ephemeral: true,
Expand Down
4 changes: 2 additions & 2 deletions commands/reactforrole.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { SlashCommandBuilder } = require("@discordjs/builders");
const { Permissions, EmbedBuilder } = require("discord.js");
const { PermissionsBitField, EmbedBuilder } = require("discord.js");

module.exports = {
data: new SlashCommandBuilder()
Expand Down Expand Up @@ -27,7 +27,7 @@ module.exports = {

async execute(interaction) {
// Only admin users should be able to execute this command
if (!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) {
return await interaction.reply({
content: "You do not have permission to execute this command.",
ephemeral: true,
Expand Down
4 changes: 2 additions & 2 deletions commands/rolesPermOverride.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { SlashCommandBuilder } = require("@discordjs/builders");
const { Permissions } = require("discord.js");
const { PermissionsBitField } = require("discord.js");

const is_valid_course_name = (course) => {
const reg_comp_course = /^comp\d{4}$/;
Expand Down Expand Up @@ -136,7 +136,7 @@ module.exports = {
),
async execute(interaction) {
try {
if (!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) {
return await interaction.reply({
content: "You do not have permission to execute this command.",
ephemeral: true,
Expand Down
4 changes: 2 additions & 2 deletions commands/schedulepost.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { SlashCommandBuilder } = require("@discordjs/builders");
const { EmbedBuilder, Permissions } = require("discord.js");
const { EmbedBuilder, PermissionsBitField } = require("discord.js");

module.exports = {
data: new SlashCommandBuilder()
Expand Down Expand Up @@ -67,7 +67,7 @@ module.exports = {

async execute(interaction) {
// Check if user has admin permission
if (!interaction.member.permissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) {
return await interaction.reply({
content: "You do not have permission to execute this command.",
ephemeral: true,
Expand Down
1 change: 0 additions & 1 deletion events/travelguide_ready.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// @ts-check
const { DBTravelguide } = require("../lib/database/dbtravelguide");
/* eslint-disable */

module.exports = {
name: "ready",
Expand Down

0 comments on commit 3fcb115

Please sign in to comment.