在我的应用中,我有以下用户层次结构organisation (org) > reseller > customer
。从业务角度来看,层次结构中的所有三种用户类型都是:customer_id
的客户。从应用程序的角度来看,它们是单独关注的问题,能够在层次结构中模拟用户。
所以他们的基本网址都相当于:
localhost/org/:customer_id.
但是,组织可以通过以下方式进入经销商:
localhost/org/:customer_id/reseller/:customer_id.
组织和经销商都可以通过以下方式进入客户:
localhost/org/:customer_id/reseller/:customer_id/customer/:customer_id
要么
localhost/reseller/:customer_id/customer/:customer_id
主要问题是每个客户都有自己的网站和服务路线。我想避免在顶级:customer_id
下重复路由。基本上以下面的结尾。
Router.map(function() {
this.route('org', { path: 'org/:customer_id' }, function() {
this.route('site');
this.route('service');
this.route('reseller', { path: 'reseller/:customer_id' }, function() {
this.route('site');
this.route('service');
this.route('customer', { path: 'customer/:customer_id' }, function() {
this.route('site');
this.route('service');
});
});
});
});
但是我不确定如何拆分路由以便它们继承正确的URL结构但不嵌套。并且每个客户都可以在正确的级别访问/模拟。
如果我无法弄清楚如何执行此操作,我计划使用用户服务为模拟设置currentUser变量,然后为每个客户剥离localhost/org/:org_id/
的URL。但这不会反映网址中的模拟级别。