<?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 randomPassword(){
    $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
    $balaji = array();
    $alphaLength = strlen($alphabet) - 1;
    for ($i = 0; $i < 9; $i++)
    {
        $n = rand(0, $alphaLength);
        $balaji[] = $alphabet[$n];
    }
    return implode($balaji);
}

//------------------------------------------------------------------------------
/*
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;
}
*/
//------------------------------------------------------------------------------

