/** * @param AJXP_Role $roleObject */ public function addRole($roleObject) { if (isset($this->roles[$roleObject->getId()])) { // NOTHING SPECIAL TO DO ! return; } if (!isset($this->rights["ajxp.roles"])) { $this->rights["ajxp.roles"] = array(); } $this->rights["ajxp.roles"][$roleObject->getId()] = true; if (!isset($this->rights["ajxp.roles.order"])) { $this->rights["ajxp.roles.order"] = array(); } $this->rights["ajxp.roles.order"][$roleObject->getId()] = count($this->rights["ajxp.roles"]); if ($roleObject->alwaysOverrides()) { if (!isset($this->rights["ajxp.roles.sticky"])) { $this->rights["ajxp.roles.sticky"] = array(); } $this->rights["ajxp.roles.sticky"][$roleObject->getId()] = true; } uksort($this->rights["ajxp.roles"], array($this, "orderRoles")); $this->roles[$roleObject->getId()] = $roleObject; $this->recomputeMergedRole(); }