public function getEditableRoles($user_id = null) { $editable_roles = RbacController::getEditableRoles(); if (isset($editable_roles[$this->role])) { array_walk($editable_roles[$this->role], function (&$value, $key) { $value = isset(self::roles()[$key]) ? self::roles()[$key] : $value; }); } if (isset($editable_roles[$this->role])) { if ($user_id !== null && $user_id === $this->id) { $editable_roles[$this->role][$this->role] = $this->getCurrentRole(); } } return isset($editable_roles[$this->role]) ? $editable_roles[$this->role] : []; }