From 9ed5089508389473db6b85bd0027d43a446b0e8a Mon Sep 17 00:00:00 2001 From: Brian McGonagill Date: Mon, 8 Dec 2025 14:54:14 -0600 Subject: [PATCH] Fixing some small registration and login isues --- client/Accounts/Login/login.js | 2 +- client/Accounts/Login/reg.js | 19 ++++++++----- client/General/Home/home.html | 10 ++++++- client/General/Home/home.js | 6 +++++ client/General/headerbar.html | 6 ++++- client/General/headerbar.js | 11 ++++++-- client/MainLayout.html | 7 ++--- server/methods.js | 49 +++++++++++++++------------------- 8 files changed, 66 insertions(+), 44 deletions(-) diff --git a/client/Accounts/Login/login.js b/client/Accounts/Login/login.js index ed5d67a..0d7a101 100644 --- a/client/Accounts/Login/login.js +++ b/client/Accounts/Login/login.js @@ -39,6 +39,6 @@ Template.login.events({ }, 'click #reg' (event) { event.preventDefault(); - FlowRouter.go('/reg'); + Session.set("loginOrReg", "reg"); }, }); \ No newline at end of file diff --git a/client/Accounts/Login/reg.js b/client/Accounts/Login/reg.js index 809ee5d..e6be5d5 100644 --- a/client/Accounts/Login/reg.js +++ b/client/Accounts/Login/reg.js @@ -96,12 +96,17 @@ Template.reg.events({ let userId = Meteor.userId(); // console.log("User ID: " + userId); const addRole = async() => { - let result = await Meteor.callAsync("addToRole", "user"); - if (!result) { - console.log(" ERROR: ROLES - Error adding user to role: "); - } else { - // console.log("User should be added to role - teacher."); - FlowRouter.go('/dashboard'); + try { + let result = await Meteor.callAsync("addToRole", "user"); + if (!result) { + throw Meteor.error("Failed to create role.", error.message); + } else { + console.log("Result is: " + result) + FlowRouter.go('/home'); + } + + } catch (error) { + console.log(" ERROR: ROLES - Error adding user to role: ", error.message); } } addRole(); @@ -132,6 +137,6 @@ Template.reg.events({ }, 'click #login' (event) { event.preventDefault(); - FlowRouter.go('/login'); + Session.set("loginOrReg", "login"); }, }); \ No newline at end of file diff --git a/client/General/Home/home.html b/client/General/Home/home.html index 154685e..b2f89bb 100644 --- a/client/General/Home/home.html +++ b/client/General/Home/home.html @@ -1,3 +1,11 @@ \ No newline at end of file diff --git a/client/General/Home/home.js b/client/General/Home/home.js index 8f2b245..6832f90 100644 --- a/client/General/Home/home.js +++ b/client/General/Home/home.js @@ -1,5 +1,11 @@ import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; +Template.home.helpers({ + loginOrReg: function() { + return Session.get("loginOrReg"); + }, +}); + Template.home.events({ }); \ No newline at end of file diff --git a/client/General/headerbar.html b/client/General/headerbar.html index 4d66492..9536a47 100644 --- a/client/General/headerbar.html +++ b/client/General/headerbar.html @@ -13,7 +13,11 @@
  • notifications
  • {{/if}} {{else}} -
  • Login
  • + {{#if $eq loginOrReg 'login'}} +
  • Register
  • + {{else}} +
  • Sign In
  • + {{/if}} {{/if}} diff --git a/client/General/headerbar.js b/client/General/headerbar.js index 4acd26e..a5487e6 100644 --- a/client/General/headerbar.js +++ b/client/General/headerbar.js @@ -8,7 +8,7 @@ Template.headerBar.onCreated(function() { }); Template.headerBar.onRendered(function() { - + Session.set("loginOrReg", "login"); }); Template.headerBar.helpers({ @@ -26,15 +26,22 @@ Template.headerBar.helpers({ return false; } }, + loginOrReg: function() { + return Session.get("loginOrReg"); + }, }); Template.headerBar.events({ 'click .navBtn' (event) { event.preventDefault(); var clickedTarget = event.target.id; - // console.log("clicked " + clickedTarget); + console.log("clicked " + clickedTarget); if (clickedTarget == 'mainMenu') { FlowRouter.go('/'); + } else if (clickedTarget == 'login') { + Session.set("loginOrReg", "login"); + } else if (clickedTarget == 'reg') { + Session.set("loginOrReg", "reg"); } else { // console.log("should be going to /" + clickedTarget); FlowRouter.go('/' + clickedTarget); diff --git a/client/MainLayout.html b/client/MainLayout.html index 043e418..4c476dd 100644 --- a/client/MainLayout.html +++ b/client/MainLayout.html @@ -2,11 +2,8 @@ {{#if Template.subscriptionsReady}}
    {{> headerBar}} - {{#if currentUser}} - {{> Template.dynamic template=main}} - {{else}} - {{> Template.dynamic template=notLoggedIn}} - {{/if}} + {{> Template.dynamic template=main}} +
    {{/if}} diff --git a/server/methods.js b/server/methods.js index 1121150..3dc1f43 100644 --- a/server/methods.js +++ b/server/methods.js @@ -4,28 +4,25 @@ import { check } from 'meteor/check'; import { Roles } from 'meteor/roles'; Meteor.methods({ - 'addToRole' (role) { - const getUserInfo = async() => { - try { - let countOfUsers = await Meteor.users.find().countAsync(); - const user = await Meteor.userAsync(); - if (user) { - let userId = user._id; - if (countOfUsers > 1) { - Roles.addUsersToRolesAysnc(userId, role); - } else if (countOfUsers == 1) { - Roles.addUsersToRolesAsync(userId, "systemadmin"); - } else { - console.log("The count of users didn't seem to work when adding a new user."); - } + async 'addToRole' (role) { + try { + const user = await Meteor.userAsync(); + let countOfUsers = await Meteor.users.find().countAsync(); + if (user) { + let userId = user._id; + if (countOfUsers > 1) { + await Roles.addUsersToRolesAsync(userId, role); + } else if (countOfUsers == 1) { + await Roles.addUsersToRolesAsync(userId, "systemadmin"); } else { - console.log(" ---- No user info found.") + console.log("The count of users didn't seem to work when adding a new user."); } - } catch(error) { - console.log(" ERROR getting user info on server: " + error); + } else { + console.log(" ---- No user info found.") } - } - getUserInfo(); + } catch(error) { + console.log(" ERROR getting user info on server: " + error); + } }, 'edit.userPass' (userId, newPassword) { check(userId, String); @@ -44,28 +41,26 @@ Meteor.methods({ } } - - }, - 'delete.userFromSys' (userId) { + async 'delete.userFromSys' (userId) { check(userId, String); - return Meteor.users.remove({ _id: userId }); + return await Meteor.users.removeAsync({ _id: userId }); }, - 'update.userEmail' (userId, email) { + async 'update.userEmail' (userId, email) { check(userId, String); check(email, String); - return Meteor.users.update({ _id: userId }, { + return await Meteor.users.updateAsync({ _id: userId }, { $set: { 'emails.0.address': email, } }); }, - 'edit.userRole' (userId, role) { + async 'edit.userRole' (userId, role) { check(userId, String); check(role, String); - return Roles.setUserRoles(userId, role); + return await Roles.setUserRolesAsync(userId, role); }, });