Project

General

Profile

eXtplorer 2.1.3 Security Release » users.php

Sören Eberhardt-Biermann, 12/25/2012 08:21 AM

 
<?php
// ensure this file is being included by a parent file
if( !defined( '_JEXEC' ) && !defined( '_VALID_MOS' ) ) die( 'Restricted access' );
/**
* @version $Id: users.php 226 2012-12-25 06:51:02Z soeren $
* @package eXtplorer
* @copyright soeren 2007-2009
* @author The eXtplorer project (http://extplorer.net)
* @author The The QuiX project (http://quixplorer.sourceforge.net)
*
* @license
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* Alternatively, the contents of this file may be used under the terms
* of the GNU General Public License Version 2 or later (the "GPL"), in
* which case the provisions of the GPL are applicable instead of
* those above. If you wish to allow use of your version of this file only
* under the terms of the GPL and not to allow others to use
* your version of this file under the MPL, indicate your decision by
* deleting the provisions above and replace them with the notice and
* other provisions required by the GPL. If you do not delete
* the provisions above, a recipient may use your version of this file
* under either the MPL or the GPL."
*
* Administrative Functions regarding users
*/
function ext_load_users() {
require _EXT_PATH."/config/.htusers.php";
}
//------------------------------------------------------------------------------
function ext_save_users() {
$cnt=count($GLOBALS["users"]);
if($cnt>0) sort($GLOBALS["users"]);

// Make PHP-File
$content='<?php
// ensure this file is being included by a parent file
if( !defined( \'_JEXEC\' ) && !defined( \'_VALID_MOS\' ) ) die( \'Restricted access\' );
$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); \r\n?>";

// Write to File
if( !is_writable(_EXT_PATH."/config/.htusers.php") && !chmod( _EXT_PATH."/config/.htusers.php", 0644 ) ) {
return false;
}
file_put_contents( _EXT_PATH."/config/.htusers.php", $content);

return true;
}
//------------------------------------------------------------------------------
function &ext_find_user($user,$pass) {
$return = null;
$cnt=count($GLOBALS["users"]);
for($i=0;$i<$cnt;++$i) {
if($user==$GLOBALS["users"][$i][0]) {
if($pass===NULL || ($pass==$GLOBALS["users"][$i][1] && $GLOBALS["users"][$i][7])) {
return $GLOBALS["users"][$i];
}
}
}

return $return;
}

//------------------------------------------------------------------------------
function ext_update_user($user,$new_data) {
$data=&ext_find_user($user,NULL);
if($data==NULL) return false;

$data=$new_data;
return ext_save_users();
}
//------------------------------------------------------------------------------
function ext_add_user($data) {
if(ext_find_user($data[0],NULL)) return false;

$GLOBALS["users"][]=$data;
return ext_save_users();
}
//------------------------------------------------------------------------------
function ext_remove_user($user) {
$data=&ext_find_user($user,NULL);
if($data==NULL) return false;

// Remove
$data=NULL;

// Copy Valid Users
$cnt=count($GLOBALS["users"]);
for($i=0;$i<$cnt;++$i) {
if($GLOBALS["users"][$i]!=NULL) $ext_save_users[]=$GLOBALS["users"][$i];
}
$GLOBALS["users"]=$ext_save_users;
return ext_save_users();
}
//------------------------------------------------------------------------------
/*
function num_users($active=true) {
$cnt=count($GLOBALS["users"]);
if(!$active) return $cnt;

for($i=0, $j=0;$i<$cnt;++$i) {
if($GLOBALS["users"][$i][7]) ++$j;
}
return $j;
}
*/
//------------------------------------------------------------------------------

?>
    (1-1/1)