]> git.mxchange.org Git - friendica.git/blobdiff - include/security.php
use fancybox instead of lightbox
[friendica.git] / include / security.php
index ed5777109856103abce0967a01d02fda04315b6d..6b8128bdd8516cf406c13492a711cedda999b505 100755 (executable)
@@ -35,6 +35,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
        }
 
        $master_record = $a->user;      
+
        if((x($_SESSION,'submanage')) && intval($_SESSION['submanage'])) {
                $r = q("select * from user where uid = %d limit 1",
                        intval($_SESSION['submanage'])
@@ -47,18 +48,22 @@ function authenticate_success($user_record, $login_initial = false, $interactive
                dbesc($master_record['password']),
                dbesc($master_record['email'])
        );
-       if(count($r))
+       if($r && count($r))
                $a->identities = $r;
        else
                $a->identities = array();
 
-       $r = q("select `user`.`uid`, `user`.`username`, `user`.`nickname` from manage left join user on manage.mid = user.uid 
+       $r = q("select `user`.`uid`, `user`.`username`, `user`.`nickname` 
+               from manage left join user on manage.mid = user.uid 
                where `manage`.`uid` = %d",
                intval($master_record['uid'])
        );
        if($r && count($r))
                $a->identities = array_merge($a->identities,$r);
 
+       if($login_initial)
+               logger('auth_identities: ' . print_r($a->identities,true), LOGGER_DEBUG);
+
        $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
                intval($_SESSION['uid']));
        if(count($r)) {
@@ -103,14 +108,18 @@ function can_write_wall(&$a,$owner) {
 
        if(remote_user()) {
 
-               // user remembered decision and avoid a DB lookup for each and every display item
+               // use remembered decision and avoid a DB lookup for each and every display item
                // DO NOT use this function if there are going to be multiple owners
 
+               // We have a contact-id for an authenticated remote user, this block determines if the contact
+               // belongs to this page owner, and has the necessary permissions to post content
+
                if($verified === 2)
                        return true;
                elseif($verified === 1)
                        return false;
                else {
+
                        $r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `user`.`uid` = `contact`.`uid` 
                                WHERE `contact`.`uid` = %d AND `contact`.`id` = %d AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 
                                AND `user`.`blockwall` = 0 AND `readonly` = 0  AND ( `contact`.`rel` IN ( %d , %d ) OR `user`.`page-flags` = %d ) LIMIT 1",
@@ -120,6 +129,7 @@ function can_write_wall(&$a,$owner) {
                                intval(CONTACT_IS_FRIEND),
                                intval(PAGE_COMMUNITY)
                        );
+
                        if(count($r)) {
                                $verified = 2;
                                return true;