public function validateMobileUid($validator, $values, $arguments = array())
 {
     $uidType = $this->adapter->getAuthConfig('uid_type');
     if (self::MUST_USE_MOBILE_UID != $uidType) {
         $validator = new opAuthValidatorMemberConfig(array('config_name' => 'mobile_cookie_uid', 'allow_empty_value' => false));
         $values = $validator->clean($values);
         if (isset($values['member'])) {
             return $values;
         }
     }
     if (self::MUST_USE_COOKIE_UID == $uidType) {
         return $values;
     }
     $keys = array('mobile_uid', 'mobile_uid_fallback_op3', 'mobile_uid_fallback_op2');
     foreach ($keys as $key) {
         $validator = new opAuthValidatorMemberConfig(array('config_name' => 'mobile_uid', 'allow_empty_value' => false, 'field_name' => $key));
         $values = $validator->clean($values);
         if (!empty($values['member'])) {
             break;
         }
     }
     if (isset($values['member']) && $values['member']->getConfig('mobile_cookie_uid') && self::MUST_USE_MOBILE_UID != $uidType) {
         // The specified member already use mobile_cookie_uid, but this request doesn't contain the cookie.
         // This request must not be allowed.
         unset($values['member']);
     }
     return $values;
 }
 public function validate($validator, $values, $arguments = array())
 {
     if (!empty($values['openid'])) {
         $validator = new opAuthValidatorMemberConfig(array('config_name' => 'openid'));
         $result = $validator->clean($values);
         return $result;
     }
     $result = $this->validateIdentifier($validator, $values, $arguments);
     return $result;
 }
 /**
  * @see opAuthValidatorMemberConfig
  */
 protected function doClean($values)
 {
     opActivateBehavior::disable();
     $values = parent::doClean($values);
     if (empty($values['member']) || !$values['member'] instanceof Member) {
         throw new sfValidatorError($this, 'invalid');
         opActivateBehavior::enable();
     }
     $valid_password = Doctrine::getTable('MemberConfig')->retrieveByNameAndMemberId('password', $values['member']->getId())->getValue();
     opActivateBehavior::enable();
     if (md5($values['password']) !== $valid_password) {
         throw new sfValidatorError($this, 'invalid');
     }
     return $values;
 }