fix banned bug

This commit is contained in:
Yaman Qalieh 2016-11-18 20:57:40 -05:00
parent ca94e92267
commit c3d2f8252d
2 changed files with 120 additions and 68 deletions

View File

@ -8,10 +8,18 @@ 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.
@ -185,7 +193,9 @@ 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":
@ -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":
@ -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);
@ -479,7 +517,9 @@ Template.createClass.events({
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,7 +531,9 @@ 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({
name: values.teacher
})) {
Meteor.call("createTeacher", values.teacher, values.school, function(error, result) { Meteor.call("createTeacher", values.teacher, values.school, function(error, result) {
if (error !== undefined) { if (error !== undefined) {
sAlert.error(error.message, { sAlert.error(error.message, {
@ -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',
@ -582,13 +626,21 @@ toggleToSidebar = function(sidebar) {
$("#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);
}); });

View File

@ -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 = [