共享内核

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

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


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

其他上下文可直接使用它


// ebookDomain是电子书上下文

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

// forumDomain 是论坛上下文

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

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


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

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

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



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