Предполагая, что у меня есть модель/контроллер/представления emberjs для учетной записи, проекта и задачи, и я хочу ограничить доступ к проекту и задаче через учетную запись, как мне это сделать в угли. Я рассматриваю возможность использования 'init', но 'init function' вызывается после установки всех остальных свойств, поэтому я не знаю, сможет ли она получить currentUser или создать currentUser по умолчанию и связать его с каждым экземпляром объекта ember, создаваемым в пространстве имен приложений.
В emberjs, если у меня есть это, например:
App = Ember.Application.create({
init: function() {
this._super();
this.setCurrentUser();
//console.log(this.get("setCurrentUser")
},
setCurrentUser: function(json) {
this.store.load(this.User, json);
this.set('currentUser', this.User.find(json['id']));
}
});
Будет ли вышеприведенный код emberjs означать, что всякий раз, когда осуществляется доступ к любой части пространства имен App, например App.project, в первую очередь будет просматриваться текущий пользователь, тем самым гарантируя, что проект ограничен пользователем.
Чтобы было понятнее, например, в rails, я сделаю доступ к области таким образом:
#account-scope in Rails?
class ApplicationController < ActionController::Base
def current_account
@current_account ||= current_user && current_user.account
end
end
#An imagined ProjectsController showing scoped access of project through account
@projects = current_account.projects
@project = current_account.projects.find(params[:id])
Спасибо за ваше понимание.