简单的权限设计php,关于PHP位运算的简单权限设计

/简单权限类

@author 27_Man/

classPeak_Auth {/权限类计数器

感化在于生成权限值

@var int/

protected static ¥authCount = 0;/权限名称

@var string/

protected ¥authName;/权限具体信息

@var string/

protected ¥authMessage;/权限值

@var int 2的N次方/

protected ¥authValue;/机关函数

初始化权限名称、权限具体信息以及权限值

@param string ¥authName 权限名称

@param string ¥authMessage 权限具体信息/

public function __construct(¥authName, ¥authMessage = ) {¥this->authName = ¥authName;¥this->authMessage = ¥authMessage;¥this->authValue = 1 << self::¥authCount;

self::¥authCount++;

}/本类不容许对象复制操纵/

private function__clone() {

}/设置权限具体信息

@param string ¥authMessage/

public function setAuthMessage(¥authMessage) {¥this->authMessage = ¥authMessage;

}/获取权限名称

@return string/

public functiongetAuthName() {return ¥this->authName;

}/获取权限值

@return int/

public functiongetAuthValue() {return ¥this->authValue;

}/获取权限具体信息

@return string/

public functiongetAuthMessage() {return ¥this->authMessage;

}

}/简单角色类

@author 27_Man/

classPeak_Role {/角色名

@var string/

protected ¥roleName;/角色拥有的权限值

@var int/

protected ¥authValue;/父角色对象

@var Peak_Role/

protected ¥parentRole;/机关函数

@param string ¥roleName 角色名

@param Peak_Role ¥parentRole 父角色对象/

public function __construct(¥roleName, Peak_Role ¥parentRole = null) {¥this->roleName = ¥roleName;¥this->authValue = 0;if (¥parentRole) {¥this->parentRole = ¥parentRole;¥this->authValue = ¥parentRole->getAuthValue();

}

}/获取父角色的权限/

protected functionfetchParenAuthValue() {if (¥this->parentRole) {¥this->authValue |= ¥this->parentRole->getAuthValue();

}

}/赐与某种权限

@param Peak_Auth ¥auth

@return Peak_Role 以便链式操纵/

public function allow(Peak_Auth ¥auth) {¥this->fetchParenAuthValue();¥this->authValue |= ¥auth->getAuthValue();return ¥this;

}/阻拦某种权限

@param Peak_Auth ¥auth

@return Peak_Role 以便链式操纵/

public function deny(Peak_Auth ¥auth) {¥this->fetchParenAuthValue();¥this->authValue &= ~¥auth->getAuthValue();return ¥this;

}/检测是否拥有某种权限

@param Peak_Auth ¥auth

@return boolean/

public function checkAuth(Peak_Auth ¥auth) {return ¥this->authValue & ¥auth->getAuthValue();

}/获取角色的权限值

@return int/

public functiongetAuthValue() {return ¥this->authValue;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值