DonatShell
Server IP : 180.180.241.3  /  Your IP : 216.73.216.252
Web Server : Microsoft-IIS/7.5
System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /AppServ/www/news/components/com_jfusion/plugins/joomla_int/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /AppServ/www/news/components/com_jfusion/plugins/joomla_int/user.php
<?php

/**
 *
 * PHP version 5
 *
 * @category   JFusion
 * @package    JFusionPlugins
 * @subpackage JoomlaInt
 * @author     JFusion Team <webmaster@jfusion.org>
 * @copyright  2008 JFusion. All rights reserved.
 * @license    http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link       http://www.jfusion.org
 */
// no direct access
defined('_JEXEC') or die('Restricted access');
/**
 * load the common Joomla JFusion plugin functions
 */
require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_jfusion' . DS . 'models' . DS . 'model.jplugin.php';

//require the standard joomla user functions
jimport('joomla.user.helper');

/**
 * JFusion User Class for the internal Joomla database
 * For detailed descriptions on these functions please check the model.abstractuser.php
 * @category   JFusion
 * @package    JFusionPlugins
 * @subpackage JoomlaInt
 * @author     JFusion Team <webmaster@jfusion.org>
 * @copyright  2008 JFusion. All rights reserved.
 * @license    http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link       http://www.jfusion.org
 */
class JFusionUser_joomla_int extends JFusionUser {
    /**
     * returns the name of this JFusion plugin
     *
     * @return string name of current JFusion plugin
     */
    function getJname()
    {
        return 'joomla_int';
    }

    /**
     * @param object $userinfo
     * @param int $overwrite
     *
     * @return array
     */
    function updateUser($userinfo, $overwrite = 0) {
        $status = JFusionJplugin::updateUser($userinfo, $overwrite, $this->getJname());
        return $status;
    }

    /**
     * @param object $userinfo
     *
     * @return array
     */
    function deleteUser($userinfo) {
        //get the database ready
        $db = JFactory::getDBO();
        //setup status array to hold debug info and errors
        $status = array('error' => array(),'debug' => array());
        $username = $userinfo->username;
        //since the jfusion_user table will be updated to the user's email if they use it as an identifier, we must check for both the username and email
        $query = 'SELECT id FROM #__jfusion_users WHERE username=' . $db->Quote($username) . ' OR LOWER(username)=' . strtolower($db->Quote($userinfo->email));
        $db->setQuery($query);
        $userid = $db->loadResult();
        if ($userid) {
            //this user was created by JFusion and we need to delete them from the joomla user and jfusion lookup table
            $user = JUser::getInstance($userid);
            $user->delete();
            $db->setQuery('DELETE FROM #__jfusion_users_plugin WHERE id = ' . (int)$userid);
            $db->query();
            $db->setQuery('DELETE FROM #__jfusion_users WHERE id=' . (int)$userid);
            $db->query();
            $status['debug'][] = JText::_('USER_DELETION') . ' ' . $username;
        } else {
            //this user was NOT create by JFusion. Therefore we need to delete it in the Joomla user table only
            $query = 'SELECT id from #__users WHERE username = ' . $db->Quote($username);
            $db->setQuery($query);
            $userid = $db->loadResult();
            if ($userid) {
                //just in case
                $db->setQuery('DELETE FROM #__jfusion_users_plugin WHERE id = ' . (int)$userid);
                $db->query();
                //delete it from the Joomla usertable
                $user = JUser::getInstance($userid);
                $user->delete();
                $status['debug'][] = JText::_('USER_DELETION') . ' ' . $username;
            } else {
                //could not find user and return an error
                //JError::raiseWarning(0, JText::_('ERROR_DELETE') . $username);
                $status['error'][] = JText::_('ERROR_DELETE') . $username;
            }
        }
        return $status;
    }

    /**
     * @param object $userinfo
     *
     * @return null|object
     */
    function getUser($userinfo) {
        $userinfo = JFusionJplugin::getUser($userinfo, $this->getJname());
        return $userinfo;
    }

    /**
     * @param string $username
     *
     * @return string
     */
    function filterUsername($username) {
        $username = JFusionJplugin::filterUsername($username, $this->getJname());
        return $username;
    }

    /**
     * @param $userinfo
     * @param $options
     *
     * @return array
     */
    function createSession16($userinfo, $options) {

    	jimport('joomla.user.helper');
    	$instance = JUser::getInstance();
		$instance->load($userinfo->userid);

		// If _getUser returned an error, then pass it back.
		if (JError::isError($instance)) {
            $status['error'] = $instance;
		} else {
            // If the user is blocked, redirect with an error
            if ($instance->get('block') == 1) {
                $status['error'] = JText::_('JERROR_NOLOGIN_BLOCKED');
            } else {
                // Authorise the user based on the group information
                if (!isset($options['group'])) {
                    $options['group'] = 'USERS';
                }

                if (!isset($options['action'])) {
                    $options['action'] = 'core.login.site';
                }

                // Check the user can login.
                $result	= $instance->authorise($options['action']);
                if (!$result) {
                    $status['error'] = JText::_('JERROR_LOGIN_DENIED');
                } else {
                    // Mark the user as logged in
                    $instance->set('guest', 0);

                    // Register the needed session variables
                    $session = JFactory::getSession();
                    $session->set('user', $instance);

                    // Update the user related fields for the Joomla sessions table.
                    $db = JFactory::getDBO();
                    $db->setQuery(
                        'UPDATE `#__session`' .
                            ' SET `guest` = '.$db->quote($instance->get('guest')).',' .
                            '	`username` = '.$db->quote($instance->get('username')).',' .
                            '	`userid` = '.(int) $instance->get('id') .
                            ' WHERE `session_id` = '.$db->quote($session->getId())
                    );
                    $db->query();

                    // Hit the user last visit field
                    if ($instance->setLastVisit()) {
                        $status['debug'] = 'Joomla session created';
                    } else {
                        $status['error'] = $instance->getError();
                    }
                }
            }
        }
        return $status;
    }

    /**
     * @param object $userinfo
     * @param array $options
     *
     * @return array
     */
    function createSession($userinfo, $options) {
        $status = array('error' => array(),'debug' => array());
        if (!empty($userinfo->block) || !empty($userinfo->activation)) {
            $status['error'][] = JText::_('FUSION_BLOCKED_USER');
        } else {
            if(JFusionFunction::isJoomlaVersion('1.6')){
                //joomla 1.6 detected
                //use new create session function
                $status = $this->createSession16($userinfo, $options);
            } else {
                //initialise some objects
                $acl = JFactory::getACL();
                $instance = JUser::getInstance($userinfo->userid);
                $grp = $acl->getAroGroup($userinfo->userid);

                //Authorise the user based on the group information
                if (!isset($options['group'])) {
                    $options['group'] = 'USERS';
                }

                //reject the session if the user is in a public group
                if ($grp->id == 29 || $grp->id == 30) {
                    //report back error
                    $status['error'] = JText::sprintf('JOOMLA_INT_ACCESS_DENIED', $grp->name, $options['group']);
                } else {
                    if (!$acl->is_group_child_of($grp->name, $options['group'])) {
                        //report back error
                        $status['error'] = JText::sprintf('JOOMLA_INT_ACCESS_DENIED', $grp->name, $options['group']);
                    } else {
                        //Mark the user as logged in
                        $instance->set('guest', 0);
                        $instance->set('aid', 1);
                        // Fudge Authors, Editors, Publishers and Super Administrators into the special access group
                        if ($acl->is_group_child_of($grp->name, 'Registered') || $acl->is_group_child_of($grp->name, 'Public Backend')) {
                            $instance->set('aid', 2);
                        }
                        //Set the usertype based on the ACL group name
                        $instance->set('usertype', $grp->name);
                        // Register the needed session variables
                        $session = JFactory::getSession();
                        $session->set('user', $instance);
                        //$session->set('referer', $_SERVER['HTTP_REFERER']);
                        //$session->set('ip_address', $_SERVER['REMOTE_ADDR']);
                        //$session->set('time', time());
                        //$session->set('query', $_SERVER['QUERY_STRING']);
                        //$session->set('filename', $_SERVER['SCRIPT_FILENAME']);

                        //JError::raiseNotice('500',$session->getId());

                        /**
                         * @ignore
                         * @var $table JTableSession
                         */
                        $table = JTable::getInstance('session');
                        $table->load($session->getId());
                        $table->guest = $instance->get('guest');
                        $table->username = $instance->get('username');
                        $table->userid = intval($instance->get('id'));
                        $table->usertype = $instance->get('usertype');
                        $table->gid = intval($instance->get('gid'));
                        $table->update();
                        // Hit the user last visit field
                        if ($instance->setLastVisit()) {
                            $status['debug'] = 'Joomla session created';
                        } else {
                            $status['error'] = $instance->getError();
                        }
                    }
                }
            }
        }
        return $status;
    }

    /**
     * @param object $userinfo
     * @param array $options
     *
     * @return array
     */
    function destroySession($userinfo, $options) {
	    if (!isset($options['clientid'])) {
		    $mainframe = JFactory::getApplication();
		    if ($mainframe->isAdmin()) {
		        $options['clientid'] = array(1);
		    } else {
		        $options['clientid'] = array(0);
		    }
		} elseif (!is_array($options['clientid'])) {
		    //J1.6+ does not pass clientid as an array so let's fix that
		    $options['clientid'] = array($options['clientid']);
		}

	    if ($userinfo->id) {
		    $my = JFactory::getUser();
		    if ($my->id == $userinfo->id) {
			    // Hit the user last visit field
			    $my->setLastVisit();
			    // Destroy the php session for this user
			    $session = JFactory::getSession();
			    $session->destroy();
		    }
		    //destroy the Joomla session but do so directly based on what $options is
		    $table = JTable::getInstance('session');
		    $table->destroy($userinfo->id, $options['clientid']);
	    }
        return array();
    }

    /**
     * @param object $userinfo
     * @param object &$existinguser
     * @param array &$status
     *
     * @return void
     */
    function updateUsergroup($userinfo, &$existinguser, &$status) {
        JFusionJplugin::updateUsergroup($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param object $existinguser
     * @param array $status
     *
     * @return void
     */
    function updatePassword($userinfo, &$existinguser, &$status) {
        JFusionJplugin::updatePassword($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param object &$existinguser
     * @param array &$status
     *
     * @return void
     */
    function updateUsername($userinfo, &$existinguser, &$status) {
        JFusionJplugin::updateUsername($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @TODO - To implement after the RC 1.1.2
     *
     * @param object $userinfo
     * @param object $existinguser
     * @param array $status
     *
     * @return void
     */
    function updateUserLanguage($userinfo, &$existinguser, &$status) {
        JFusionJplugin::updateUserLanguage($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param object $existinguser
     * @param array $status
     *
     * @return void
     */
    function updateEmail($userinfo, &$existinguser, &$status) {
        JFusionJplugin::updateEmail($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param object $existinguser
     * @param array $status
     *
     * @return void
     */
    function blockUser($userinfo, &$existinguser, &$status) {
        JFusionJplugin::blockUser($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param object $existinguser
     * @param array $status
     *
     * @return void
     */
    function unblockUser($userinfo, &$existinguser, &$status) {
        JFusionJplugin::unblockUser($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param object $existinguser
     * @param array $status
     *
     * @return void
     */
    function activateUser($userinfo, &$existinguser, &$status) {
        JFusionJplugin::activateUser($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param object $existinguser
     * @param array $status
     *
     * @return void
     */
    function inactivateUser($userinfo, &$existinguser, &$status) {
        JFusionJplugin::inactivateUser($userinfo, $existinguser, $status, $this->getJname());
    }

    /**
     * @param object $userinfo
     * @param array $status
     *
     * @return void
     */
    function createUser($userinfo, &$status) {
        JFusionJplugin::createUser($userinfo, $status, $this->getJname());
    }
}

Anon7 - 2022
AnonSec Team