diff --git a/src/PermissionsHook.php b/src/PermissionsHook.php index 9c51413..de10490 100644 --- a/src/PermissionsHook.php +++ b/src/PermissionsHook.php @@ -202,27 +202,33 @@ class PermissionsHook implements !$this->config->has('RNRSSalt') ) { return true; - } else if (($rnrsverified_mode1 || $rnrsverified_mode2) && $rnrsverified_mode3) { - // case 1: verified and exempted (bugfix) + } else if (!$rnrsverified_mode1 && $rnrsverified_mode2 && $rnrsverified_mode3) { + // case 0: not verified but confirmed and exempted (bugfix) + // remove from confirmed group if ( - $rnrsverified_enabled_confirmed_group && $rnrsverified_enabled_exempt_group && + $rnrsverified_enabled_confirmed_group && + $rnrsverified_enabled_exempt_group && + in_array($this->config->get('RNRSConfirmedGroup'), $this->permissionManager->getUserPermissions($user)) && in_array($this->config->get('RNRSExemptGroup'), $this->permissionManager->getUserPermissions($user)) ) { - // remove from exempted group - if ( - $rnrsverified_enabled_exempt_group && - in_array($this->config->get('RNRSExemptGroup'), $this->permissionManager->getUserPermissions($user)) - ) { - $this->removeGroup($user, $this->config->get('RNRSExemptGroup')); - } + $this->removeGroup($user, $this->config->get('RNRSConfirmedGroup')); + } + } else if ($rnrsverified_mode1 && $rnrsverified_mode2 && $rnrsverified_mode3) { + // case 1: verified and exempted (bugfix) + // remove from exempted group + if ( + $rnrsverified_enabled_exempt_group && + in_array($this->config->get('RNRSExemptGroup'), $this->permissionManager->getUserPermissions($user)) + ) { + $this->removeGroup($user, $this->config->get('RNRSExemptGroup')); + } - // add to confirmed group - if ( - $rnrsverified_enabled_confirmed_group && - !in_array($this->config->get('RNRSConfirmedGroup'), $this->permissionManager->getUserPermissions($user)) - ) { - $this->addGroup($user, $this->config->get('RNRSConfirmedGroup')); - } + // add to confirmed group + if ( + $rnrsverified_enabled_confirmed_group && + !in_array($this->config->get('RNRSConfirmedGroup'), $this->permissionManager->getUserPermissions($user)) + ) { + $this->addGroup($user, $this->config->get('RNRSConfirmedGroup')); } return true; } else if (($rnrsverified_mode1 || $rnrsverified_mode2) && !$rnrsverified_mode3) { @@ -284,27 +290,33 @@ class PermissionsHook implements ) ); - if (($rnrsverified_mode1 || $rnrsverified_mode2) && $rnrsverified_mode3) { - // case 1: verified and exempted (bugfix) + if (!$rnrsverified_mode1 && $rnrsverified_mode2 && $rnrsverified_mode3) { + // case 0: not verified but confirmed and exempted (bugfix) + // remove from confirmed group if ( - $rnrsverified_enabled_confirmed_group && $rnrsverified_enabled_exempt_group && + $rnrsverified_enabled_confirmed_group && + $rnrsverified_enabled_exempt_group && + in_array($this->config->get('RNRSConfirmedGroup'), $this->permissionManager->getUserPermissions($user)) && in_array($this->config->get('RNRSExemptGroup'), $this->permissionManager->getUserPermissions($user)) ) { - // remove from exempted group - if ( - $rnrsverified_enabled_exempt_group && - in_array($this->config->get('RNRSExemptGroup'), $this->permissionManager->getUserPermissions($user)) - ) { - $this->removeGroup($user, $this->config->get('RNRSExemptGroup')); - } + $this->removeGroup($user, $this->config->get('RNRSConfirmedGroup')); + } + } else if ($rnrsverified_mode1 && $rnrsverified_mode2 && $rnrsverified_mode3) { + // case 1: verified and exempted (bugfix) + // remove from exempted group + if ( + $rnrsverified_enabled_exempt_group && + in_array($this->config->get('RNRSExemptGroup'), $this->permissionManager->getUserPermissions($user)) + ) { + $this->removeGroup($user, $this->config->get('RNRSExemptGroup')); + } - // add to confirmed group - if ( - $rnrsverified_enabled_confirmed_group && - !in_array($this->config->get('RNRSConfirmedGroup'), $this->permissionManager->getUserPermissions($user)) - ) { - $this->addGroup($user, $this->config->get('RNRSConfirmedGroup')); - } + // add to confirmed group + if ( + $rnrsverified_enabled_confirmed_group && + !in_array($this->config->get('RNRSConfirmedGroup'), $this->permissionManager->getUserPermissions($user)) + ) { + $this->addGroup($user, $this->config->get('RNRSConfirmedGroup')); } } else if (($rnrsverified_mode1 || $rnrsverified_mode2) && !$rnrsverified_mode3) { // case 2: verified but not exempted