简体   繁体   中英

ember.js: Make AdminRouteMixin from AuthenticatedRouteMixin?

Is there a more elegant way to prevent unauthorized access to an admin-only route than writing this in all of my admin routes?

export default Ember.Route.extend(AuthenticatedRouteMixin, {
  beforeModel: function(){
    if(!this.get('session.secure.admin')) this.transitionTo("dashboard");
  }
});

Perhaps it's possible to extend AuthenticatedRouteMixin itself to make this kind of check? Thanks!

Why not just make the mixin?

import Ember from 'ember';
import AuthenticatedRouteMixin from 'wherever/it/is'.

const { Mixin } = Ember;

export default Mixin.create(AuthenticatedRouteMixin, {
  beforeModel(){
    if(!this.get('session.secure.admin')) {
      this.transitionTo("dashboard");
    }
  }
})

And then import it in your routes:

import Ember from 'ember';
import AdminCheckMixin from 'yourApp/mixins/routes/admin-check';

const { Route } = Ember;

export default Route.extend(AdminCheckMixin);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM