00001 <?php 00002 /*************************************************************************** 00003 * Copyright (C) 2010 by Alexander V. Solomatin * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU Lesser General Public License as * 00007 * published by the Free Software Foundation; either version 3 of the * 00008 * License, or (at your option) any later version. * 00009 * * 00010 ***************************************************************************/ 00011 00018 final class OpenIdExtensionSreg implements OpenIdExtension 00019 { 00020 const NAMESPACE_1_1 = "http://openid.net/extensions/sreg/1.1"; 00021 00022 const PARAM_NICKNAME = 'nickname'; 00023 const PARAM_EMAIL = 'email'; 00024 const PARAM_FULLNAME = 'fullname'; 00025 const PARAM_DATE_OF_BIRTH = 'dob'; 00026 const PARAM_GENDER = 'gender'; 00027 const PARAM_POSTCODE = 'postcode'; 00028 const PARAM_COUNTRY = 'country'; 00029 const PARAM_LANGUAGE = 'language'; 00030 const PARAM_TIMEZONE = 'timezone'; 00031 00032 private $params = array(); 00033 private $version = '1.1'; 00034 private $nickname = null; 00035 private $email = null; 00036 private $fullname = null; 00037 private $dob = null; 00038 private $gender = null; 00039 private $postcode = null; 00040 private $country = null; 00041 private $language = null; 00042 private $timezone = null; 00043 00047 public static function create() 00048 { 00049 return new self(); 00050 } 00051 00055 public function addParamsToModel(Model $model) 00056 { 00057 if ($this->version == '1.1') { 00058 $model->set('openid.ns.sreg', self::NAMESPACE_1_1); 00059 } 00060 00061 $model->set('openid.sreg.optional', implode(',', $this->params)); 00062 00063 } 00064 00069 public function parseResponce(HttpRequest $request, array $params) 00070 { 00071 foreach ($this->params as $param) { 00072 $this->$param = null; 00073 if (isset($params['openid.sreg_'.$param])) { 00074 $this->$param = $params['openid.sreg_'.$param]; 00075 } 00076 } 00077 } 00078 00079 public function getVersion() 00080 { 00081 return $this->version; 00082 } 00083 00088 public function addParam($paramName) 00089 { 00090 $this->params []= $paramName; 00091 00092 return $this; 00093 } 00094 00098 public function dropParams() 00099 { 00100 $this->params = array(); 00101 00102 return $this; 00103 } 00104 00109 public function setVersion($version) 00110 { 00111 $this->version = $version; 00112 00113 return $this; 00114 } 00115 00116 public function getNickname() 00117 { 00118 return $this->nickname; 00119 } 00120 00121 public function getEmail() 00122 { 00123 return $this->email; 00124 } 00125 00126 public function getFullname() 00127 { 00128 return $this->fullname; 00129 } 00130 00131 public function getDateOfBirth() 00132 { 00133 return $this->dob; 00134 } 00135 00136 public function getGender() 00137 { 00138 return $this->gender; 00139 } 00140 00141 public function getPostcode() 00142 { 00143 return $this->postcode; 00144 } 00145 00146 public function getCountry() 00147 { 00148 return $this->country; 00149 } 00150 00151 public function getLanguage() 00152 { 00153 return $this->language; 00154 } 00155 00156 public function getTimezone() 00157 { 00158 return $this->timezone; 00159 } 00160 } 00161 ?>