/**
  * @param IWebUser $user the user
  *
  * @return boolean whether the rule applies to the user
  */
 protected function isUserMatched($user)
 {
     if (empty($this->users)) {
         return true;
     }
     foreach ($this->users as $u) {
         if ($u === '*') {
             return true;
         } else {
             if ($u === '?' && $user->getIsGuest()) {
                 return true;
             } else {
                 if ($u === '@' && !$user->getIsGuest()) {
                     return true;
                 } else {
                     if (!strcasecmp($u, $user->getName())) {
                         return true;
                     }
                 }
             }
         }
     }
     return false;
 }
 /**
  * @param IWebUser $user the user
  * @return boolean whether the rule applies to the user
  */
 protected function isUserMatched($user)
 {
     if (empty($this->users)) {
         return true;
     }
     foreach ($this->users as $u) {
         if ($u === '*') {
             return true;
         } else {
             if ($u === '?' && $user->getIsGuest()) {
                 return true;
             } else {
                 if ($u === '#' && $user->getRecovery()) {
                     return true;
                 } else {
                     if ((int) $user->getId() === UserGroupsUser::ROOT && $u !== '?' && $u !== '#') {
                         return true;
                     } else {
                         if (UserGroupsConfiguration::findRule('super_admin') && isset(Yii::app()->user->accessRules['userGroups']['admin']['admin']) && $u !== '?' && $u !== '#') {
                             return true;
                         } else {
                             if ($u === '@' && !$user->getIsGuest() && !$user->getRecovery()) {
                                 return true;
                             } else {
                                 if (!strcasecmp($u, $user->getName())) {
                                     return true;
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return false;
 }