Configuring a router for various roles in Meteor Js

Seeking assistance in setting up router for various roles. Here's the code snippet I am working with. Would appreciate any guidance.

if (Roles.userIsInRole(['admin'])) {
    Router.go('/addItem');
}
else {
    Roles.userIsInRole(['admin-category'])
    Router.go('/AddCategory');
}

Answer №1

To achieve this using iron:router, there are multiple approaches you can take. One option is to set an onBeforeAction hook on a route that will redirect to the appropriate route or template using Router.go. You can find more information about hooks in the documentation located here. Another possibility is to render different templates based on certain conditions:

if (Roles.userIsInRole(Meteor.userId(), ['admin'])) {
    this.render('addItem');
} else if(Roles.userIsInRole(Meteor.userId(), ['admin-category'])) {
    this.render('addCategory');
} else {
    this.render('defaultRoute');
}

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

The canvas is either displayed solely on the first image of the slider or attached to the bottom of every image

While attempting to implement a feature where clicking on an image would draw a circle on a canvas overlaying it, I encountered an issue. When applying cnvs.style.position = 'absolute';, all canvas elements stack on top of each other instead of b ...

Console error caused by uncontrolled input in React Hooks

A cautionary message: Changing an uncontrolled text input to a controlled one is not recommended. Stick to using either controlled or uncontrolled input elements throughout the component's lifecycle. import React, { useEffect, useState } ...

Ensure that the value is updated upon clicking on the radio buttons and store the value in a session variable for

I'm working on a feature that involves two radio buttons: one for shipped and the other for not shipped. The requirement is that when the first radio button is clicked, an amount of 100 should be added to the total price. If the second radio button is ...

What is the most effective way to receive all values sent to an Observer upon a new subscription?

I have an observer that receives various values emitted to it at different times. For instance sub = new Subject<any>(); sub.next(1); sub.next(2); sub.next(3); #hack 1 sub.next(4); sub.next(5); sub.next(6); #hack 2 If there is a ...

Why is the AJAX-generated HTML not being refreshed in the DOM?

When I load HTML content via AJAX onto a div using Mootools 1.11 and squeezebox, everything works perfectly in Firefox. However, when I try to load it in Internet Explorer (tested on IE7), the code fails with an error message stating "'null' is n ...

Is there a way to create triangles on all four corners of an image using canvas in JavaScript?

In my code, I am currently working on drawing rectangles on the corners of an image using JavaScript. To achieve this, I first extract the image data from a canvas element. // Get image data let imgData = ctx.getImageData(0, 0, canvas.width, canvas.height) ...

Is it possible to utilize an async call with the useState hook when passing in a function

Embarking on my journey to learn React, so please bear with me... The code snippet below has been working for me, allowing me to set the valueOne as "OneOneOne": import react from "React"; function LoadPage() { const [valueOne, setvalueOne] = ...

Looping through an array of nested objects using Vue

I have encountered a challenge with accessing specific data within an array that I am iterating over. The array is structured as follows, using Vue.js: companies: [ name: "company1" id: 1 type: "finance" additionalData: "{& ...

Issues encountered while trying to implement HTML text within span tags

In my code snippet, I am using a span element: <span> {textToRender} </span> The purpose of this code is to render HTML text (as a string) within a span element. some text <br/> some text <br/> some text <ol>text However, wh ...

Leveraging the Angular (2) routerLinkActive directive to handle dynamic routes

Although my current approach works, I believe there may be a more efficient way to implement this in Angular. The situation is as follows: Imagine nested, inflected paths like /logos and /logo/:id The markup below functions as intended: <li class ...

Changing the border of an iframe element using jQuery or Javascript from within the iframe itself

Is it possible to set the border of an iframe to zero from within the iframe itself using JavaScript or jQuery? Any guidance on how this can be achieved would be greatly appreciated. Thank you! ...

Jsdelivr does not automatically synchronize with updates made to GitHub commits

Check out this JavaScript file I have stored on GitHub. // Remember to define the function before setup() and call it under draw() function pointCoord() { stroke(255,0,0); line(mouseX,0, mouseX, height); line(0,mouseY, width, mouseY); ...

Determining the top element displayed in a div: A guide

Looking for an answer on how to determine the top visible element while scrolling? You may find some insights in this post: (Check if element is visible after scrolling). My scenario is slightly different - I have a scrollable div containing multiple ele ...

Using dangerouslySetInnerHTML in React within a Fragment

In my current project, I have a specific requirement where I need to format text in React and also include HTML rendering. Here's an example of what I'm trying to accomplish: import React, {Fragment} from "react"; import {renderToString} from " ...

Despite being logged, the current value of firebase.auth().currentUser in Firebase is null

I have coded a query in my service.TS file that displays the "state" of items based on the UID of the logged-in user: getLists(): FirebaseListObservable<any> { firebase.auth().onAuthStateChanged(function(user) { if (user) {console.log("blah", fir ...

Maintain the sequence of the select dropdown when appending it

Using jQuery, I have set up a dynamic process to add options to a select element. $("input[name='config']").on('change', function () { let config = $("input[name='config']").val(); let dropdown = $('# ...

The forEach function selectively bypasses certain objects during the iteration process

I have a task that involves writing a function to process an array of objects containing information and save that data in a JSON file. For instance: let arr = [ { creator: 'Girchi', title: ' ...

Transform an array into an array of objects using the reduce method

optimizedRoute = ['Bengaluru', 'Salem', 'Erode', 'Tiruppur', 'Coimbatore'] result = [ {start: bengaluru, end: salem}, {start: salem, end: erode}, {start: erode, end: tiruppur}, {start: tiruppur, en ...

Why am I experiencing a problem with my ajax call only working once when I submit forms that are rendered with @Html.Render

I have a scenario where my index page loads with two partial views, each containing an ajax call that filters content based on date. The issue I'm facing is that the ajax call only works once successfully, and subsequent attempts cause a full page ref ...

What causes an array to accumulate duplicate objects when they are added in a loop?

I am currently developing a calendar application using ExpressJS and TypeScript. Within this project, I have implemented a function that manages recurring events and returns an array of events for a specific month upon request. let response: TEventResponse ...