protected function updateRoleAssignmentRule()
 {
     global $ilAccess, $ilErr;
     if (!$ilAccess->checkAccess('write', '', $this->ref_id)) {
         ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
         $this->roleAssignment();
         return false;
     }
     $this->initFormRoleAssignment();
     if (!$this->form->checkInput() or $err = $this->checkInput((int) $_REQUEST['rule_id'])) {
         if ($err) {
             ilUtil::sendFailure($this->lng->txt($err));
         }
         $this->tabs_gui->setSubTabActive('shib_role_assignment');
         $this->form->setValuesByPost();
         $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.shib_role_assignment.html', 'Services/AuthShibboleth');
         $this->tpl->setVariable('NEW_RULE_TABLE', $this->form->getHTML());
         return true;
     }
     $this->showLocalRoleSelection('update');
     $this->rule->update();
     ilUtil::sendSuccess($this->lng->txt('settings_saved'));
     $this->roleAssignment();
     return true;
 }