]> git.mxchange.org Git - friendica.git/blob - mod/openid.php
6c1edd72e26b19bb1ebff9f2b50d8adc0125f875
[friendica.git] / mod / openid.php
1 <?php
2
3
4 require_once('library/openid.php');
5
6
7 function openid_content(&$a) {
8
9         if((x($_GET,'openid_mode')) && (x($_SESSION,'openid'))) {
10                 $openid = new LightOpenID;
11
12                 if($openid->validate()) {
13
14                         $r = q("SELECT * FROM `user` WHERE `openid` = '%s' AND `blocked` = 0 AND `verified` = 1 LIMIT 1",
15                                 dbesc($_SESSION['openid'])
16                         );
17                         if(! count($r)) {
18                                 notice( t('Login failed.') . EOL );
19                                 goaway($a->get_baseurl());
20                         }
21                         unset($_SESSION['openid']);
22
23                         $_SESSION['uid'] = $r[0]['uid'];
24                         $_SESSION['theme'] = $r[0]['theme'];
25                         $_SESSION['authenticated'] = 1;
26                         $_SESSION['page_flags'] = $r[0]['page-flags'];
27                         $_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $r[0]['nickname'];
28
29                         notice( t("Welcome back ") . $r[0]['username'] . EOL);
30                         $a->user = $r[0];
31                         if(strlen($a->user['timezone']))
32                                 date_default_timezone_set($a->user['timezone']);
33
34                         $r = q("SELECT * FROM `contact` WHERE `uid` = %s AND `self` = 1 LIMIT 1",
35                                 intval($_SESSION['uid']));
36                         if(count($r)) {
37                                 $a->contact = $r[0];
38                                 $a->cid = $r[0]['id'];
39                                 $_SESSION['cid'] = $a->cid;
40                         }
41
42                         header('X-Account-Management-Status: active; name="' . $a->user['username'] . '"; id="' . $a->user['nickname'] .'"');
43                         if(($a->module !== 'home') && isset($_SESSION['return_url']))
44                                 goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
45                         else
46                                 goaway($a->get_baseurl());
47                 }
48         }
49         notice( t('Login failed.') . EOL);
50         goaway($a->get_baseurl());
51         // NOTREACHED
52 }