用QQ来诠释访问控制

15-01-29 liangshan
              

用QQ来诠释访问控制可能是这样:

QQ群是个空间场所,被围墙围着的空间场所,底部是坚不可钻的水泥地,顶部是禁飞区,只有一个门可以进来。

控制给定的主体是否可以进入某个QQ群这是从空间的维度去控制入口处的权限。

主体从QQ群的入口进来。我们又对QQ群这个空间场所内部做了单元划分。将整个空间,比如将一个QQ群比作一座大楼,这个大都会有很多层,每一层中又有很组,每个组中又有很多房间。每一个单元中都是只有受控的有限的几个出入口。一个组(一个家吧)有一个大门,一家人的房子里有几个房间,每一个房间又是有有限的出入口。

整体上这是对空间进行有偏移的单元划分,是集合的幂集,是个树形的结构。

QQ群除了可以从空间角度控制权限外,还可以从时间角度去控制,比如近几个月出来的QQ群中的“禁言“功能,可以在某个时间段禁言某个主体。QQ群还可以考虑关”小黑屋“这个办法,将需要惩罚的主体关入某个与外界隔离的空间中去,这种办法类似社会中的”监狱“。


这些区域可能认为是房间中的家具,每个家具都有它可以提供的功能,家具是继续对空间进行单元划分,一个衣柜中还是有很多个格子,衣柜有衣柜的负责人,虽然衣柜中的格子没有上门上锁,但是作为衣柜的主人的那个老婆主体却可以下令我们不能把自己的衣服放入某些格子。

这些大楼、楼层、房间组、房间、家具、等都可以与我们的程序中书写的代码去一一对应。