🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

ember-route-constraints

Package Overview
Dependencies
Maintainers
3
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ember-route-constraints

Route navigation constraints for Ember apps.

0.0.7
latest
Source
npm
Version published
Weekly downloads
7
16.67%
Maintainers
3
Weekly downloads
 
Created
Source

Ember Rute Constraints

Download count all time Build Status npm version Ember Observer Score

Visit project page and demo

Route navigation constraints for Ember apps.

Sometimes we want to restrict who can visit a route based on some conditions. A common approach to solve this issue is to have a beforeModel hook and then transtion from there if the user can't visit the route.

beforeModel() {
  if (!this.get('currenUser.isAdmin')) {
    this.transitionTo('index');
  }
}

While this approach works, it starts to get messy, repetitive and difficult to follow as applications grow.

This addon follows a similar pattern to liquid-fire so you can define all your routes constraints using a declaritive DSL. If the given conditions are not met, then you can redirect users to a different route.

Create a file in app/route-constraints.js like:

// app/route-constraints.js

export default function() {
  this.transition(
    this.toRoute('admin'),
    this.check(function() {
      return this.get('currentUser.isAdmin');
    }),
    this.redirectTo('index')
  );

  this.transition(
    this.toRoute(['paid-feature', 'help']),
    this.check(function() {
      return this.get('currentUser.isSubscribed');
    }),
    this.redirectTo('subscribe')
  );
}

And then add the ConstrainableMixin to the routes you want to constraint.

//app/admin/route.js

import Route from '@ember/routing/route';
import Constrainable from 'ember-route-constraints/mixins/constrainable';

export default Route.extend(Constrainable, {});

Installation

You can install either ember install:

For Ember CLI >= 0.2.3:

ember install ember-route-constraints

For Ember CLI < 0.2.3:

ember install:addon ember install ember-route-constraints

Development

Installation

  • git clone this repository
  • yarn install

Running

Running Tests

  • npm test (Runs ember try:testall to test your addon against multiple Ember versions)
  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://www.ember-cli.com/.

Keywords

ember-addon

FAQs

Package last updated on 03 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts