fix banned bug
This commit is contained in:
parent
ca94e92267
commit
c3d2f8252d
@ -6,12 +6,20 @@ Session.set("noclass", null); // If user doesn't have classes.
|
|||||||
Session.set("notfound", null); // If no results for autocomplete.
|
Session.set("notfound", null); // If no results for autocomplete.
|
||||||
|
|
||||||
var filterOpen = [false, true, true, true, true];
|
var filterOpen = [false, true, true, true, true];
|
||||||
var sidebarMode = [null,null];
|
var sidebarMode = [null, null];
|
||||||
|
|
||||||
Template.sidebarMenuPlate.rendered = function(){$(".menuWrapper").slideDown(300);};
|
Template.sidebarMenuPlate.rendered = function() {
|
||||||
Template.sidebarOptionPlate.rendered = function(){$(".menuWrapper").slideDown(300);};
|
$(".menuWrapper").slideDown(300);
|
||||||
Template.sidebarRequestPlate.rendered = function(){$(".menuWrapper").slideDown(300);};
|
};
|
||||||
Template.sidebarCreatePlate.rendered = function(){$(".menuWrapper").slideDown(300);};
|
Template.sidebarOptionPlate.rendered = function() {
|
||||||
|
$(".menuWrapper").slideDown(300);
|
||||||
|
};
|
||||||
|
Template.sidebarRequestPlate.rendered = function() {
|
||||||
|
$(".menuWrapper").slideDown(300);
|
||||||
|
};
|
||||||
|
Template.sidebarCreatePlate.rendered = function() {
|
||||||
|
$(".menuWrapper").slideDown(300);
|
||||||
|
};
|
||||||
|
|
||||||
Template.sidebarMenuPlate.helpers({
|
Template.sidebarMenuPlate.helpers({
|
||||||
modeStatus(status) { // Color status of display modes.
|
modeStatus(status) { // Color status of display modes.
|
||||||
@ -47,8 +55,8 @@ Template.sidebarMenuPlate.events({
|
|||||||
toggleToSidebar(false);
|
toggleToSidebar(false);
|
||||||
},
|
},
|
||||||
'click #filterHead' (event) {
|
'click #filterHead' (event) {
|
||||||
if(event.target.id === "disableFilter") return;
|
if (event.target.id === "disableFilter") return;
|
||||||
if(!filterOpen[0]) {
|
if (!filterOpen[0]) {
|
||||||
$("#filterWrapper").slideDown(300);
|
$("#filterWrapper").slideDown(300);
|
||||||
} else {
|
} else {
|
||||||
$("#filterWrapper").slideUp(300);
|
$("#filterWrapper").slideUp(300);
|
||||||
@ -56,7 +64,7 @@ Template.sidebarMenuPlate.events({
|
|||||||
filterOpen[0] = !filterOpen[0];
|
filterOpen[0] = !filterOpen[0];
|
||||||
},
|
},
|
||||||
'click #typeFilterWrapper' () {
|
'click #typeFilterWrapper' () {
|
||||||
if(!filterOpen[1]) {
|
if (!filterOpen[1]) {
|
||||||
$("#classFilterHolder").slideDown(300);
|
$("#classFilterHolder").slideDown(300);
|
||||||
} else {
|
} else {
|
||||||
$("#classFilterHolder").slideUp(300);
|
$("#classFilterHolder").slideUp(300);
|
||||||
@ -64,7 +72,7 @@ Template.sidebarMenuPlate.events({
|
|||||||
filterOpen[1] = !filterOpen[1];
|
filterOpen[1] = !filterOpen[1];
|
||||||
},
|
},
|
||||||
'click #classFilterWrapper' () {
|
'click #classFilterWrapper' () {
|
||||||
if(!filterOpen[2]) {
|
if (!filterOpen[2]) {
|
||||||
$("#classListHolder").slideDown(300);
|
$("#classListHolder").slideDown(300);
|
||||||
} else {
|
} else {
|
||||||
$("#classListHolder").slideUp(300);
|
$("#classListHolder").slideUp(300);
|
||||||
@ -157,7 +165,7 @@ Template.sidebarOptionPlate.events({
|
|||||||
toggleToMode("createClass");
|
toggleToMode("createClass");
|
||||||
},
|
},
|
||||||
'click #settingMode' () {
|
'click #settingMode' () {
|
||||||
if(!filterOpen[3]) {
|
if (!filterOpen[3]) {
|
||||||
$("#settingModeWrapper").slideDown(300);
|
$("#settingModeWrapper").slideDown(300);
|
||||||
} else {
|
} else {
|
||||||
$("#settingModeWrapper").slideUp(300);
|
$("#settingModeWrapper").slideUp(300);
|
||||||
@ -165,7 +173,7 @@ Template.sidebarOptionPlate.events({
|
|||||||
filterOpen[3] = !filterOpen[3];
|
filterOpen[3] = !filterOpen[3];
|
||||||
},
|
},
|
||||||
'click #preferencesWrapper' () {
|
'click #preferencesWrapper' () {
|
||||||
if(!filterOpen[4]) {
|
if (!filterOpen[4]) {
|
||||||
$("#prefCont").slideDown(300);
|
$("#prefCont").slideDown(300);
|
||||||
} else {
|
} else {
|
||||||
$("#prefCont").slideUp(300);
|
$("#prefCont").slideUp(300);
|
||||||
@ -185,13 +193,15 @@ Template.sidebarCreatePlate.events({
|
|||||||
});
|
});
|
||||||
|
|
||||||
Template.registerHelper("classInfo", (info) => {
|
Template.registerHelper("classInfo", (info) => {
|
||||||
var thisClass = classes.findOne({_id:Session.get("classInfo")});
|
var thisClass = classes.findOne({
|
||||||
|
_id: Session.get("classInfo")
|
||||||
|
});
|
||||||
var isYou = Session.equals("classInfo", Meteor.userId());
|
var isYou = Session.equals("classInfo", Meteor.userId());
|
||||||
switch (info) {
|
switch (info) {
|
||||||
case "name":
|
case "name":
|
||||||
return (isYou) ? "Personal" : thisClass.name;
|
return (isYou) ? "Personal" : thisClass.name;
|
||||||
case "teacher":
|
case "teacher":
|
||||||
return (isYou) ? "None": thisClass.teacher;
|
return (isYou) ? "None" : thisClass.teacher;
|
||||||
case "hour":
|
case "hour":
|
||||||
return (isYou) ? "None" : thisClass.hour;
|
return (isYou) ? "None" : thisClass.hour;
|
||||||
case "category":
|
case "category":
|
||||||
@ -199,17 +209,28 @@ Template.registerHelper("classInfo", (info) => {
|
|||||||
case "privacy":
|
case "privacy":
|
||||||
return (isYou) ? true : thisClass.privacy;
|
return (isYou) ? true : thisClass.privacy;
|
||||||
case "admin":
|
case "admin":
|
||||||
return Meteor.users.findOne({_id: (isYou) ? Meteor.userId() : thisClass.admin});
|
return Meteor.users.findOne({
|
||||||
|
_id: (isYou) ? Meteor.userId() : thisClass.admin
|
||||||
|
});
|
||||||
case "code":
|
case "code":
|
||||||
if(isYou) return {exists: false};
|
if (isYou) return {
|
||||||
return (isYou || Meteor.userId() !== this.admin) ? {exists: false} : {exists: true, code: Meteor.call('getCode', thisClass._id)};
|
exists: false
|
||||||
|
};
|
||||||
|
return (isYou || Meteor.userId() !== this.admin) ? {
|
||||||
|
exists: false
|
||||||
|
} : {
|
||||||
|
exists: true,
|
||||||
|
code: Meteor.call('getCode', thisClass._id)
|
||||||
|
};
|
||||||
case "mine":
|
case "mine":
|
||||||
return (isYou) ? true : Meteor.userId() === thisClass.admin;
|
return (isYou) ? true : Meteor.userId() === thisClass.admin;
|
||||||
case "moderators":
|
case "moderators":
|
||||||
if (isYou || thisClass.moderators.length === 0) return [];
|
if (isYou || thisClass.moderators.length === 0) return [];
|
||||||
var moderators = [];
|
var moderators = [];
|
||||||
thisClass.moderators.forEach(function(ele) {
|
thisClass.moderators.forEach(function(ele) {
|
||||||
var array = Meteor.users.findOne({_id: ele});
|
var array = Meteor.users.findOne({
|
||||||
|
_id: ele
|
||||||
|
});
|
||||||
array.delete = true;
|
array.delete = true;
|
||||||
moderators.push(array);
|
moderators.push(array);
|
||||||
});
|
});
|
||||||
@ -218,7 +239,9 @@ Template.registerHelper("classInfo", (info) => {
|
|||||||
if (isYou || thisClass.banned.length === 0) return [];
|
if (isYou || thisClass.banned.length === 0) return [];
|
||||||
var banned = [];
|
var banned = [];
|
||||||
thisClass.banned.forEach(function(ele) {
|
thisClass.banned.forEach(function(ele) {
|
||||||
var array = Meteor.users.findOne({_id: ele});
|
var array = Meteor.users.findOne({
|
||||||
|
_id: ele
|
||||||
|
});
|
||||||
array.delete = true;
|
array.delete = true;
|
||||||
banned.push(array);
|
banned.push(array);
|
||||||
});
|
});
|
||||||
@ -227,7 +250,9 @@ Template.registerHelper("classInfo", (info) => {
|
|||||||
if (isYou || thisClass.subscribers.length === 0) return [];
|
if (isYou || thisClass.subscribers.length === 0) return [];
|
||||||
var subscribers = [];
|
var subscribers = [];
|
||||||
thisClass.subscribers.forEach(function(ele) {
|
thisClass.subscribers.forEach(function(ele) {
|
||||||
subscribers.push(Meteor.users.findOne({_id: ele}));
|
subscribers.push(Meteor.users.findOne({
|
||||||
|
_id: ele
|
||||||
|
}));
|
||||||
});
|
});
|
||||||
return subscribers;
|
return subscribers;
|
||||||
case "personal":
|
case "personal":
|
||||||
@ -236,7 +261,7 @@ Template.registerHelper("classInfo", (info) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Template.registerHelper("classInfoMode", (mode, check) => {
|
Template.registerHelper("classInfoMode", (mode, check) => {
|
||||||
if(typeof check === "string") return Session.equals("classInfoMode",mode);
|
if (typeof check === "string") return Session.equals("classInfoMode", mode);
|
||||||
return (Session.equals("classInfoMode", mode)) ? Session.get("user").preferences.theme.modeHighlight + ";background-color:rgba(0,0,0,0.1);" : "rgba(0,0,0,0)";
|
return (Session.equals("classInfoMode", mode)) ? Session.get("user").preferences.theme.modeHighlight + ";background-color:rgba(0,0,0,0.1);" : "rgba(0,0,0,0)";
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -247,15 +272,15 @@ Template.registerHelper("classSelected", () => {
|
|||||||
Template.manageClass.events({
|
Template.manageClass.events({
|
||||||
'click .classBox' (event) {
|
'click .classBox' (event) {
|
||||||
var classId = event.target.getAttribute("classid");
|
var classId = event.target.getAttribute("classid");
|
||||||
if(Session.equals("classInfo",classId)) return;
|
if (Session.equals("classInfo", classId)) return;
|
||||||
toggleToClassInfo(classId);
|
toggleToClassInfo(classId);
|
||||||
},
|
},
|
||||||
'click #classInfoModeWrapper span:first-child' () {
|
'click #classInfoModeWrapper span:first-child' () {
|
||||||
if(Session.equals("classInfoMode","general")) return;
|
if (Session.equals("classInfoMode", "general")) return;
|
||||||
toggleToClassInfoMode("general");
|
toggleToClassInfoMode("general");
|
||||||
},
|
},
|
||||||
'click #classInfoModeWrapper span:last-child' () {
|
'click #classInfoModeWrapper span:last-child' () {
|
||||||
if(Session.equals("classInfoMode","users")) return;
|
if (Session.equals("classInfoMode", "users")) return;
|
||||||
toggleToClassInfoMode("users");
|
toggleToClassInfoMode("users");
|
||||||
},
|
},
|
||||||
'click .infoCard .fa-pencil-square-o' () {
|
'click .infoCard .fa-pencil-square-o' () {
|
||||||
@ -268,7 +293,7 @@ Template.manageClass.events({
|
|||||||
var user = Meteor.users.findOne({
|
var user = Meteor.users.findOne({
|
||||||
"services.google.email": value
|
"services.google.email": value
|
||||||
});
|
});
|
||||||
if(!user) {
|
if (!user) {
|
||||||
sAlert.error("Invalid email!", {
|
sAlert.error("Invalid email!", {
|
||||||
effect: 'stackslide',
|
effect: 'stackslide',
|
||||||
position: 'top',
|
position: 'top',
|
||||||
@ -301,19 +326,32 @@ Template.manageClass.events({
|
|||||||
Template.joinClass.helpers({
|
Template.joinClass.helpers({
|
||||||
classes() { // Loads all of the possible classes ( Limit of twenty shown ) ( Sorts by class size ) ( Only your school)
|
classes() { // Loads all of the possible classes ( Limit of twenty shown ) ( Sorts by class size ) ( Only your school)
|
||||||
var array = classes.find({
|
var array = classes.find({
|
||||||
status: {$eq: true},
|
status: {
|
||||||
privacy: {$eq: false},
|
$eq: true
|
||||||
_id: {$nin: Session.get("user").classes},
|
|
||||||
school: {$eq: Session.get("user").school}
|
|
||||||
},
|
},
|
||||||
{sort: {subscribers: -1}},
|
privacy: {
|
||||||
{limit: 20}
|
$eq: false
|
||||||
).fetch();
|
},
|
||||||
|
_id: {
|
||||||
|
$nin: Session.get("user").classes
|
||||||
|
},
|
||||||
|
school: {
|
||||||
|
$eq: Session.get("user").school
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
sort: {
|
||||||
|
subscribers: -1
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
limit: 20
|
||||||
|
}).fetch();
|
||||||
|
|
||||||
for (var i = 0; i < array.length; i++) {
|
for (var i = 0; i < array.length; i++) {
|
||||||
array[i].join = true;
|
array[i].join = true;
|
||||||
array[i].subscribers = array[i].subscribers.length;
|
array[i].subscribers = array[i].subscribers.length;
|
||||||
array[i].teachershort = array[i].teacher.split(" ").slice(1).reduce(function(a,b) { return a+ " " + b;});
|
array[i].teachershort = array[i].teacher.split(" ").slice(1).reduce(function(a, b) {
|
||||||
|
return a + " " + b;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (array.length === 0) {
|
if (array.length === 0) {
|
||||||
Session.set("noclass", true);
|
Session.set("noclass", true);
|
||||||
@ -363,15 +401,15 @@ Template.joinClass.helpers({
|
|||||||
Template.joinClass.events({
|
Template.joinClass.events({
|
||||||
'click .classBox' (event) {
|
'click .classBox' (event) {
|
||||||
var classId = event.target.getAttribute("classid");
|
var classId = event.target.getAttribute("classid");
|
||||||
if(Session.equals("classInfo",classId)) return;
|
if (Session.equals("classInfo", classId)) return;
|
||||||
toggleToClassInfo(classId);
|
toggleToClassInfo(classId);
|
||||||
},
|
},
|
||||||
'click #classInfoModeWrapper span:first-child' () {
|
'click #classInfoModeWrapper span:first-child' () {
|
||||||
if(Session.equals("classInfoMode","general")) return;
|
if (Session.equals("classInfoMode", "general")) return;
|
||||||
toggleToClassInfoMode("general");
|
toggleToClassInfoMode("general");
|
||||||
},
|
},
|
||||||
'click #classInfoModeWrapper span:last-child' () {
|
'click #classInfoModeWrapper span:last-child' () {
|
||||||
if(Session.equals("classInfoMode","users")) return;
|
if (Session.equals("classInfoMode", "users")) return;
|
||||||
toggleToClassInfoMode("users");
|
toggleToClassInfoMode("users");
|
||||||
},
|
},
|
||||||
'input #classSearch' (event) { // Auto-complete updater
|
'input #classSearch' (event) { // Auto-complete updater
|
||||||
@ -412,12 +450,12 @@ Template.joinClass.events({
|
|||||||
$("#confirmOverlay").fadeIn(250);
|
$("#confirmOverlay").fadeIn(250);
|
||||||
},
|
},
|
||||||
'click #private' () {
|
'click #private' () {
|
||||||
$("#privateCode").css('display','inline-block');
|
$("#privateCode").css('display', 'inline-block');
|
||||||
var input = document.getElementById("privateCode");
|
var input = document.getElementById("privateCode");
|
||||||
input.focus();
|
input.focus();
|
||||||
if(input.value === "") return;
|
if (input.value === "") return;
|
||||||
Meteor.call("joinPrivateClass", input.value, function(error, result) {
|
Meteor.call("joinPrivateClass", input.value, function(error, result) {
|
||||||
if(result) {
|
if (result) {
|
||||||
sAlert.success("Joined!", {
|
sAlert.success("Joined!", {
|
||||||
effect: 'genie',
|
effect: 'genie',
|
||||||
position: 'bottom-right',
|
position: 'bottom-right',
|
||||||
@ -466,20 +504,22 @@ Template.createClass.events({
|
|||||||
'click #creSubmit' () {
|
'click #creSubmit' () {
|
||||||
var inputs = document.getElementsByClassName("creInput");
|
var inputs = document.getElementsByClassName("creInput");
|
||||||
var values = {};
|
var values = {};
|
||||||
var required = ["school","name","privacy","category"];
|
var required = ["school", "name", "privacy", "category"];
|
||||||
var no = [];
|
var no = [];
|
||||||
for(var i = 0; i < inputs.length; i++) {
|
for (var i = 0; i < inputs.length; i++) {
|
||||||
var val = inputs[i].value;
|
var val = inputs[i].value;
|
||||||
var where = inputs[i].getAttribute("form");
|
var where = inputs[i].getAttribute("form");
|
||||||
if(val === "" && _.contains(required, where)) {
|
if (val === "" && _.contains(required, where)) {
|
||||||
no.push(where);
|
no.push(where);
|
||||||
}
|
}
|
||||||
values[where] = val;
|
values[where] = val;
|
||||||
}
|
}
|
||||||
console.log(values);
|
console.log(values);
|
||||||
console.log(no);
|
console.log(no);
|
||||||
if(no.length > 0) { // Check missing fields.
|
if (no.length > 0) { // Check missing fields.
|
||||||
sAlert.error("Missing " + no.reduce(function(a,b) { return (b === no[no.length-1]) ? a + ", and " + b : a + ", " + b;}), {
|
sAlert.error("Missing " + no.reduce(function(a, b) {
|
||||||
|
return (b === no[no.length - 1]) ? a + ", and " + b : a + ", " + b;
|
||||||
|
}), {
|
||||||
effect: 'stackslide',
|
effect: 'stackslide',
|
||||||
position: 'top',
|
position: 'top',
|
||||||
timeout: 3000
|
timeout: 3000
|
||||||
@ -491,8 +531,10 @@ Template.createClass.events({
|
|||||||
values.category.toLowerCase();
|
values.category.toLowerCase();
|
||||||
values.code = "";
|
values.code = "";
|
||||||
serverData = values;
|
serverData = values;
|
||||||
if(!teachers.findOne({name: values.teacher})) {
|
if (!teachers.findOne({
|
||||||
Meteor.call("createTeacher", values.teacher, values.school, function(error,result) {
|
name: values.teacher
|
||||||
|
})) {
|
||||||
|
Meteor.call("createTeacher", values.teacher, values.school, function(error, result) {
|
||||||
if (error !== undefined) {
|
if (error !== undefined) {
|
||||||
sAlert.error(error.message, {
|
sAlert.error(error.message, {
|
||||||
effect: 'stackslide',
|
effect: 'stackslide',
|
||||||
@ -517,7 +559,7 @@ Template.classInfoUsers.events({
|
|||||||
var user = Meteor.users.findOne({
|
var user = Meteor.users.findOne({
|
||||||
"services.google.email": value
|
"services.google.email": value
|
||||||
});
|
});
|
||||||
if(!user) {
|
if (!user) {
|
||||||
sAlert.error("Invalid email!", {
|
sAlert.error("Invalid email!", {
|
||||||
effect: 'stackslide',
|
effect: 'stackslide',
|
||||||
position: 'top',
|
position: 'top',
|
||||||
@ -538,7 +580,9 @@ Template.classInfoUsers.events({
|
|||||||
var outerInput = event.target.parentNode.parentNode.parentNode.parentNode.childNodes[1];
|
var outerInput = event.target.parentNode.parentNode.parentNode.parentNode.childNodes[1];
|
||||||
var type = outerInput.childNodes[6].getAttribute("user");
|
var type = outerInput.childNodes[6].getAttribute("user");
|
||||||
var userid = event.target.parentNode.parentNode.getAttribute("userid");
|
var userid = event.target.parentNode.parentNode.getAttribute("userid");
|
||||||
if(!Meteor.users.findOne({_id: userid})) {
|
if (!Meteor.users.findOne({
|
||||||
|
_id: userid
|
||||||
|
})) {
|
||||||
sAlert.error("Stop hacking, reload the page.", {
|
sAlert.error("Stop hacking, reload the page.", {
|
||||||
effect: 'stackslide',
|
effect: 'stackslide',
|
||||||
position: 'top',
|
position: 'top',
|
||||||
@ -571,7 +615,7 @@ Template.classInfoCode.events({
|
|||||||
|
|
||||||
toggleToMode = function(mode) {
|
toggleToMode = function(mode) {
|
||||||
$("#mainBody").fadeOut(250, function() {
|
$("#mainBody").fadeOut(250, function() {
|
||||||
(Session.equals("sidebarMode", "option")) ? Session.set("settingMode", mode) : Session.set("mode", mode);
|
(Session.equals("sidebarMode", "option")) ? Session.set("settingMode", mode): Session.set("mode", mode);
|
||||||
Session.set("classInfo", null);
|
Session.set("classInfo", null);
|
||||||
$("#mainBody").fadeIn(250);
|
$("#mainBody").fadeIn(250);
|
||||||
});
|
});
|
||||||
@ -580,15 +624,23 @@ toggleToMode = function(mode) {
|
|||||||
toggleToSidebar = function(sidebar) {
|
toggleToSidebar = function(sidebar) {
|
||||||
try {
|
try {
|
||||||
$("#backgroundOverlay").fadeOut(250);
|
$("#backgroundOverlay").fadeOut(250);
|
||||||
} catch(err) {}
|
} catch (err) {}
|
||||||
if(Session.equals("sidebarMode", sidebar) || !sidebar) {
|
if (Session.equals("sidebarMode", sidebar) || !sidebar) {
|
||||||
$("#menuContainer").hide("slide", {direction: "left"}, 250);
|
$("#menuContainer").hide("slide", {
|
||||||
$("#divCenter").stop().animate({left: '6vh'}, 250, function() {
|
direction: "left"
|
||||||
|
}, 250);
|
||||||
|
$("#divCenter").stop().animate({
|
||||||
|
left: '6vh'
|
||||||
|
}, 250, function() {
|
||||||
Session.set("sidebarMode", "");
|
Session.set("sidebarMode", "");
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
$("#menuContainer").show("slide", {direction: "left"}, 250);
|
$("#menuContainer").show("slide", {
|
||||||
$("#divCenter").stop().animate({left: '36vh'}, 250);
|
direction: "left"
|
||||||
|
}, 250);
|
||||||
|
$("#divCenter").stop().animate({
|
||||||
|
left: '36vh'
|
||||||
|
}, 250);
|
||||||
$(".menuWrapper").fadeOut(200, function() {
|
$(".menuWrapper").fadeOut(200, function() {
|
||||||
Session.set("sidebarMode", sidebar);
|
Session.set("sidebarMode", sidebar);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -133,11 +133,11 @@ Meteor.publish('users', function() {
|
|||||||
// Allows only superadmins to edit collections from client
|
// Allows only superadmins to edit collections from client
|
||||||
Security.permit(['insert', 'update', 'remove']).collections([schools, classes, work]).ifHasRole('superadmin');
|
Security.permit(['insert', 'update', 'remove']).collections([schools, classes, work]).ifHasRole('superadmin');
|
||||||
|
|
||||||
// Accounts.validateLoginAttempt(function(info) {
|
Accounts.validateLoginAttempt(function(info) {
|
||||||
// var user = info.user;
|
var user = info.user;
|
||||||
// if(user.banned) throw new Meteor.Error(403, 'You are banned');
|
if(user.banned) throw new Meteor.Error(403, 'You are banned');
|
||||||
|
return true;
|
||||||
// });
|
});
|
||||||
|
|
||||||
|
|
||||||
var errors = [
|
var errors = [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user