Skip to content

Instantly share code, notes, and snippets.

@faizaanshamsi
Last active September 11, 2015 05:34
Show Gist options
  • Save faizaanshamsi/a57e566a4e0dfd16521a to your computer and use it in GitHub Desktop.
Save faizaanshamsi/a57e566a4e0dfd16521a to your computer and use it in GitHub Desktop.
Component Authorization Helpers
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle'
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
{{component (can-view 'user')}}
import Ember from 'ember';
export default Ember.Helper.extend({
role: Ember.inject.service(),
compute(params) {
var role = this.get('role');
var component = role.fetchComponent(params[0]);
return component;
}
});
import Ember from 'ember';
export default Ember.Service.extend({
fetchComponent(role) {
if (role === 'admin') {
return 'x-comp';
} else {
return 'x-form-2';
}
}
});
{
"version": "0.4.9",
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.13.11/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember-template-compiler.js"
}
}
import Ember from 'ember';
export default Ember.Component.extend({
});
This is what an admin would see
import Ember from 'ember';
export default Ember.Component.extend({
});
This is what a normal user would see.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment