PHP Classes

File: admin/quixplorer/_include/user.php

Recommend this page to a friend!
  Classes of Joko Prasetyo   miwo WordPress FTP Plugin   admin/quixplorer/_include/user.php   Download  
File: admin/quixplorer/_include/user.php
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: miwo WordPress FTP Plugin
WordPress plugin to upload and manage files
Author: By
Last change:
Date: 1 year ago
Size: 5,939 bytes
 

Contents

Class file image Download
<?php
/*
* @package MiwoFTP
* @copyright Copyright (C) 2009-2014 Miwisoft, LLC. All rights reserved.
* @license GNU General Public License version 2 or later
*
*/

// no direct access
defined('ABSPATH') or die('MIWI');


function
_idx ($what)
{
   
$idx = array (
       
'username' => 0,
       
'password' => 1,
       
'permissions' => 6,
       
'useractive' => 7
       
);
    return
$idx[$what];
}

/**
    loads the user database for authenticating the users

    @param $file The name of the file containing the user database. Default is ./_config/.htusers.php
*/
function user_load ($file = NULL)
{
    if (!isset(
$file))
       
$file = MPATH_MIWOFTP_QX."/_config/.htusers.php";

    if (!
is_readable($file))
       
show_error("user database $file does not exist or is not readable.<p>See the installation manual for details");

    require
$file;
}

function
_saveUsers ()
{
   
$cnt=count($GLOBALS["users"]);
    if(
$cnt>0) sort($GLOBALS["users"]);
   
   
// Make PHP-File
   
$content='<?php $GLOBALS["users"]=array(';
    for(
$i=0;$i<$cnt;++$i) {
       
// if($GLOBALS["users"][6]&4==4) $GLOBALS["users"][6]=7; // If admin, all permissions
       
$content.="\r\n\tarray(\"".$GLOBALS["users"][$i][0].'","'.
           
$GLOBALS["users"][$i][1].'","'.$GLOBALS["users"][$i][2].'","'.$GLOBALS["users"][$i][3].'",'.
           
$GLOBALS["users"][$i][4].',"'.$GLOBALS["users"][$i][5].'",'.$GLOBALS["users"][$i][6].','.
           
$GLOBALS["users"][$i][7].'),';
    }
   
$content.="\r\n); ?>";
   
   
// Write to File
   
$fp = @fopen(MPATH_MIWOFTP_QX."/_config/.htusers.php", "w");
    if(
$fp===false) return false; // Error
   
fputs($fp,$content);
   
fclose($fp);
   
    return
true;
}

/**
  @returns the index of the user in the user configuration
  @return -1 if the user was not found.
*/
function user_get_index ($user)
{
    if (!isset(
$GLOBALS['users']))
        return -
1;

   
// determine the number of registered users
   
$cnt = count($GLOBALS["users"]);

   
// search for the user with the given user name
    // in the user table
   
for ($ii = 0; $ii < $cnt; ++$ii)
    {
       
// look for the next entry if the current user dont
        // match the one we're looking for
       
if ($user != $GLOBALS["users"][$ii][_idx('username')])
            continue;

       
// return the index of the user
       
return $ii;
    }
   
   
// return -1 if the user has not been found
   
return -1;
   
}
//------------------------------------------------------------------------------
/**
    try to find the user with the username $user and the password $pass
    in the user table.

    if you provide NULL as password, no password and user active check
    is done. otherwise, this function returns the user, if $pass matches
    the user password and the user is active.

    if the user is inactive or the password mismatches, NULL is returned.
*/
function user_find ($user, $pass = NULL)
{
   
$idx = user_get_index($user);
    if (
$idx < 0)
        return;

   
// if no password check should be done, return
    // the user
   
if ($pass == NULL)
        return
$GLOBALS["users"][$idx];
       
   
// check if the password matches
   
if ($pass != $GLOBALS["users"][$idx][_idx('password')])
        return;

   
// check if the user is active
   
if (!$GLOBALS["users"][$idx][_idx('useractive')])
        return;

   
// return the user if all checks are passed
   
return $GLOBALS["users"][$idx];
}

//------------------------------------------------------------------------------
/**
    activate the user with the given user name and password.

    this function tries to find the user with the given user name and
    password in the user database and tries to activate this user.

    if username and password matches to the content of the
    user database, the user is activated, it's home directory,
    home url and permissions are set in the global variable and the
    function returns true.

    if the user cannot be authenticated, the function returns false.

    @param $user user name of the user to be authenticated
    @param $pass password of the user to authenticate
*/
function user_activate($user, $pass)
{
   
// try to find and authenticate the user.
   
$data = user_find($user,$pass);

   
// if the user could not be authenticated, return false.
   
if (!isset($data))
        return
false;
   
   
// store the user data in the globals variable
   
$GLOBALS['__SESSION']["s_user"] = $data[0];
   
$GLOBALS['__SESSION']["s_pass"] = $data[1];
   
$GLOBALS["home_dir"] = $data[2];
   
$GLOBALS["home_url"] = $data[3];
   
$GLOBALS["show_hidden"] = $data[4];
   
$GLOBALS["no_access"] = $data[5];
   
   
// return true on success.
   
return true;
}
//------------------------------------------------------------------------------
/**
    updates the user data for the given user.
*/
function user_update($user,$new_data)
{
   
$idx = user_get_index($user);
    if (
$idx < 0)
        return;
   
   
$data=$new_data;
   
$GLOBALS["users"][$idx] = $new_data;
    return
_saveUsers();
}
//------------------------------------------------------------------------------
/**
    adds a new user to the user database.
*/
function user_add($data)
{
    if (
user_find($data[0],NULL))
        return
false;
   
   
$GLOBALS["users"][] = $data;
    return
_saveUsers();
}
//------------------------------------------------------------------------------

/**
  this function removes the user with the given user name from the
  user database.
*/
function user_remove ($user)
{
   
// Copy Valid Users
   
$cnt = count($GLOBALS["users"]);
    for (
$i=0; $i < $cnt; ++$i)
    {
        if (
$GLOBALS["users"][$i][0] != $user)
           
$save_users[] = $GLOBALS["users"][$i];
    }
   
$GLOBALS["users"]=$save_users;
    return
_saveUsers();
}
//------------------------------------------------------------------------------
/**
  this function returns the permission values of the user with the given
  user name.

  if the user is not found in the user database, this function returns
  NULL, otherwise, it returns the permissions of the user.
*/
function user_get_permissions ($username)
{
   
// try to find the user in the user database
   
$data = user_find($username, NULL);

   
// return NULL if the user does not exists
   
if (!isset($data))
        return;

   
// return the user permissions
   
return $data[_idx('permissions')];
}
?>