Improved exception handling, started work on improving error messages for IP bans
This commit is contained in:
parent
7d3c31f0aa
commit
853f67fe15
15 changed files with 118 additions and 77 deletions
|
|
@ -115,7 +115,7 @@ const channelSchema = new mongoose.Schema({
|
|||
channelSchema.pre('save', async function (next){
|
||||
if(this.isModified("name")){
|
||||
if(this.name.match(/^[a-z0-9_\-.]+$/i) == null){
|
||||
throw new Error("Username must only contain alpha-numerics and the following symbols: '-_.'");
|
||||
throw loggerUtils.exceptionSmith("Username must only contain alpha-numerics and the following symbols: '-_.'", "validation");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -221,7 +221,7 @@ channelSchema.statics.register = async function(channelObj, ownerObj){
|
|||
const chanDB = await this.findOne({ name });
|
||||
|
||||
if(chanDB){
|
||||
throw new Error("Channel name already taken!");
|
||||
throw loggerUtils.exceptionSmith("Channel name already taken!", "validation");
|
||||
}else{
|
||||
const id = await statModel.incrementChannelCount();
|
||||
const rankList = [{
|
||||
|
|
@ -334,7 +334,7 @@ channelSchema.statics.processExpiredBans = async function(){
|
|||
channelSchema.methods.updateSettings = async function(settingsMap){
|
||||
settingsMap.forEach((value, key) => {
|
||||
if(this.settings[key] == null){
|
||||
throw new Error("Invalid channel setting.");
|
||||
throw loggerUtils.exceptionSmith("Invalid channel setting.", "validation");
|
||||
}
|
||||
|
||||
this.settings[key] = value;
|
||||
|
|
@ -661,13 +661,13 @@ channelSchema.methods.getChanBans = async function(){
|
|||
channelSchema.methods.banByUserDoc = async function(userDB, expirationDays, banAlts){
|
||||
//Throw a shitfit if the user doesn't exist
|
||||
if(userDB == null){
|
||||
throw new Error("Cannot ban non-existant user!");
|
||||
throw loggerUtils.exceptionSmith("Cannot ban non-existant user!", "validation");
|
||||
}
|
||||
|
||||
const foundBan = await this.checkBanByUserDoc(userDB);
|
||||
|
||||
if(foundBan != null){
|
||||
throw new Error("User already banned!");
|
||||
throw loggerUtils.exceptionSmith("User already banned!", "validation");
|
||||
}
|
||||
|
||||
//Create a new ban document based on input
|
||||
|
|
@ -703,13 +703,13 @@ channelSchema.methods.ban = async function(user, expirationDays, banAlts){
|
|||
channelSchema.methods.unbanByUserDoc = async function(userDB){
|
||||
//Throw a shitfit if the user doesn't exist
|
||||
if(userDB == null){
|
||||
throw new Error("Cannot ban non-existant user!");
|
||||
throw loggerUtils.exceptionSmith("Cannot ban non-existant user!", "validation");
|
||||
}
|
||||
|
||||
const foundBan = await this.checkBanByUserDoc(userDB);
|
||||
|
||||
if(foundBan == null){
|
||||
throw new Error("User already unbanned!");
|
||||
throw loggerUtils.exceptionSmith("User already unbanned!", "validation");
|
||||
}
|
||||
|
||||
//You know I can't help but feel like an asshole for looking for the index of something I just pulled out of an array using forEach...
|
||||
|
|
@ -727,16 +727,16 @@ channelSchema.methods.unban = async function(user){
|
|||
|
||||
channelSchema.methods.nuke = async function(confirm){
|
||||
if(confirm == "" || confirm == null){
|
||||
throw new Error("Empty Confirmation String!");
|
||||
throw loggerUtils.exceptionSmith("Empty Confirmation String!", "validation");
|
||||
}else if(confirm != this.name){
|
||||
throw new Error("Bad Confirmation String!");
|
||||
throw loggerUtils.exceptionSmith("Bad Confirmation String!", "validation");
|
||||
}
|
||||
|
||||
//Annoyingly there isnt a good way to do this from 'this'
|
||||
var oldChan = await this.deleteOne();
|
||||
|
||||
if(oldChan.deletedCount == 0){
|
||||
throw new Error("Server Error: Unable to delete channel! Please report this error to your server administrator, and with timestamp.");
|
||||
throw loggerUtils.exceptionSmith("Server Error: Unable to delete channel! Please report this error to your server administrator, and with timestamp.", "internal");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue