public function testGetExtension()
 {
     $data = array('openid_op_endpoint' => 'http://localhost', 'openid_ns_ax' => 'http://openid.net/srv/ax/1.0', 'openid_ax_mode' => 'fetch_response', 'openid_ax_type_fname' => 'http://example.com/schema/fullname', 'openid_ax_value_fname' => 'John Smith', 'openid_ns_ay' => 'http://openid.net/srv/ax/1.1', 'openid_ay_mode' => 'fetch_response', 'openid_ay_type_fname' => 'http://example.com/schema/fullname', 'openid_ay_value_fname' => 'Foo Bar', 'foo' => 'bar', 'test' => 'test');
     // ns http://openid.net/srv/ax/1.0
     $this->assertEquals(array('mode' => 'fetch_response', 'type_fname' => 'http://example.com/schema/fullname', 'value_fname' => 'John Smith'), ProviderAbstract::getExtension($data, 'http://openid.net/srv/ax/1.0'));
     // ns http://openid.net/srv/ax/1.1
     $this->assertEquals(array('mode' => 'fetch_response', 'type_fname' => 'http://example.com/schema/fullname', 'value_fname' => 'Foo Bar'), ProviderAbstract::getExtension($data, 'http://openid.net/srv/ax/1.1'));
 }
Exemple #2
0
 protected function getAccountData(array $data)
 {
     $account = array();
     // sreg extension
     $params = ProviderAbstract::getExtension($data, Extension\Sreg::NS);
     if (!empty($params)) {
         if (isset($params['fullname'])) {
             $account['name'] = $params['fullname'];
         } else {
             if (isset($params['nickname'])) {
                 $account['name'] = $params['nickname'];
             }
         }
         if (isset($params['gender'])) {
             $params['gender'] = strtoupper($params['gender']);
             $account['gender'] = $params['gender'] == 'M' ? 'male' : ($params['gender'] == 'F' ? 'female' : 'undisclosed');
         } else {
             $account['gender'] = 'undisclosed';
         }
         if (isset($params['timezone']) && in_array($params['timezone'], DateTimeZone::listIdentifiers())) {
             $account['timezone'] = $params['timezone'];
         } else {
             $account['timezone'] = 'UTC';
         }
         return $account;
     }
     // ax extension
     $params = ProviderAbstract::getExtension($data, Extension\Ax::NS);
     if (!empty($params)) {
         $keys = array();
         $values = array('fullname' => 'http://axschema.org/namePerson', 'firstname' => 'http://axschema.org/namePerson/first', 'lastname' => 'http://axschema.org/namePerson/last', 'gender' => 'http://axschema.org/person/gender', 'timezone' => 'http://axschema.org/pref/timezone');
         foreach ($params as $k => $v) {
             foreach ($values as $key => $ns) {
                 if ($v == $ns) {
                     $keys[$key] = str_replace('type', 'value', $k);
                 }
             }
         }
         if (isset($keys['firstname']) && $keys['lastname'] && isset($params[$keys['firstname']]) && isset($params[$keys['lastname']])) {
             $account['name'] = $params[$keys['firstname']] . ' ' . $params[$keys['lastname']];
         } elseif (isset($keys['fullname']) && isset($params[$keys['fullname']])) {
             $account['name'] = $params[$keys['fullname']];
         }
         if (isset($keys['gender']) && isset($params[$keys['gender']])) {
             $params[$keys['gender']] = strtoupper($params[$keys['gender']]);
             $account['gender'] = $params[$keys['gender']] == 'M' ? 'male' : ($params[$keys['gender']] == 'F' ? 'female' : 'undisclosed');
         } else {
             $account['gender'] = 'undisclosed';
         }
         if (isset($keys['timezone']) && isset($params[$keys['timezone']]) && in_array($params[$keys['timezone']], DateTimeZone::listIdentifiers())) {
             $account['timezone'] = $params[$keys['timezone']];
         } else {
             $account['timezone'] = 'UTC';
         }
         return $account;
     }
 }
Exemple #3
0
 public function getExtension($ns)
 {
     return ProviderAbstract::getExtension($this->params, $ns);
 }
Exemple #4
0
 private function getOauthAccessToken($hostId, array $data)
 {
     $data = ProviderAbstract::getExtension($data, Extension\Oauth::NS);
     $token = isset($data['request_token']) ? $data['request_token'] : null;
     $verifier = isset($data['verifier']) ? $data['verifier'] : null;
     if ($hostId > 0 && !empty($token) && !empty($verifier)) {
         $row = $this->hm->getTable('AmunService\\Core\\Host')->select(array('consumerKey', 'consumerSecret', 'url'))->where('id', '=', $hostId)->where('status', '=', Host\Record::NORMAL)->getRow();
         if (!empty($row)) {
             $url = $this->discoverOauthAcessUrl(new Url($row['url']));
             $oauth = new Oauth($this->http);
             return $oauth->accessToken($url, $row['consumerKey'], $row['consumerSecret'], $token, '', $verifier);
         } else {
             throw new Exception('Invalid host id');
         }
     }
 }