Ember.js - 如何在使用 ember-can 插件时获取能力源文件中的当前用户属性
Ember.js - How to get current user properties in abilities source file while using ember-can addon
如何在 Ember-can 插件的能力源文件中获取用户对象。
这是我的能力文件的样子。
import Ember from 'ember';
import { Ability } from 'ember-can';
export default Ability.extend({
canWrite: Ember.computed('user.isAdmin', function() {
return this.get('user.isAdmin');
})
});
注入用户
该功能如何知道谁登录了?这取决于您如何在您的应用中实现它!
如果您使用 Ember.Service
作为您的会话,您可以将其注入能力:
// app/abilities/foo.js
import Ember from 'ember';
import { Ability } from 'ember-can';
export default Ability.extend({
session: Ember.inject.service()
});
如果您正在使用 ember-simple-auth,您可能希望将 simple-auth-session:main
会话注入能力 类。
为此,添加一个初始化程序,如下所示:
// app/initializers/inject-session-into-abilities.js
export default {
name: 'inject-session-into-abilities',
initialize(app) {
app.inject('ability', 'session', 'simple-auth-session:main');
}
};
能力 类 现在可以访问会话,然后可以使用该会话检查用户是否登录等...
如何在 Ember-can 插件的能力源文件中获取用户对象。 这是我的能力文件的样子。
import Ember from 'ember';
import { Ability } from 'ember-can';
export default Ability.extend({
canWrite: Ember.computed('user.isAdmin', function() {
return this.get('user.isAdmin');
})
});
注入用户
该功能如何知道谁登录了?这取决于您如何在您的应用中实现它!
如果您使用 Ember.Service
作为您的会话,您可以将其注入能力:
// app/abilities/foo.js
import Ember from 'ember';
import { Ability } from 'ember-can';
export default Ability.extend({
session: Ember.inject.service()
});
如果您正在使用 ember-simple-auth,您可能希望将 simple-auth-session:main
会话注入能力 类。
为此,添加一个初始化程序,如下所示:
// app/initializers/inject-session-into-abilities.js
export default {
name: 'inject-session-into-abilities',
initialize(app) {
app.inject('ability', 'session', 'simple-auth-session:main');
}
};
能力 类 现在可以访问会话,然后可以使用该会话检查用户是否登录等...