共享内核

14-04-15 brighthas
                   

项目需求得到如下上下文 : 媒体管理 / 论坛 / 电子书

这3个都需要用户权限管理,这时候当然最好的是有个rbac系统,但单独开发它很耗时,我就采用了共享内核。这个内核就是 user ,很小,只有一个user aggre

// user实体
function User(uid, email, username, password) {}
<p>

其他上下文可直接使用它

// ebookDomain是电子书上下文

// 把userDomain作为子域注册到ebookDomain
ebookDomain.register("domains",{userDomain:userDomain}).seal();

// forumDomain 是论坛上下文

// 把userDomain作为子域注册到forumDomain
forumnDomain.register("domains",{userDomain:userDomain}).seal();

<p>

这样就完成了user内核共享,例如在论坛上下文内部的调用

// 在事件监听器里的代码

listen.eventName = "userDomain User.*.create";
function listen( userInfo ){
   // 这里可以创建自身上下文的user,你懂的。
   // 但这种实现好像优于“共享内核”的概念了,呵呵。因为属于监听了内核事件,而做出相应反应,嘎嘎。
   var userRepo = my.repos.User; // 这是 forum 上下文的User概念
   userRepo.create(userInfo).then(function(){ ... })
}

<p>

好了,说到这里了,我得赶紧完成这一套项目。

[该贴被brighthas于2014-04-15 09:55修改过]