<?php
/**
 * Project:   BeCast WebEngine - simple site engine
 * File:      /admin/editusers.apnl.php
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * @link http://www.becast.at
 * @copyright 2009-2025 becast.at
 * @author Bernhard Jaud <bernhard at becast dot at>
 * @package BcWe core
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version $Id: 4307178d356b25ab674c5f91057706b5d7594fcf $
*/
If (!defined("in_BL_ADMIN")) {
    die("Dieses Script kann nicht ausserhalb des Frameworks laufen!");
} 
$addnav["right"]=FALSE;
$session->page_begin("edituser", True);


class editusers_panel extends admin_module{

	function output(){
		global $plugin,$session,$config,$db,$panel,$admin,$module,$root,$firephp,$lang;
			if(isset($_GET["edituser"]) && $_GET["edituser"]!=""){
				if(isset($_POST["send"]) && !empty($_POST["name"]) && !empty($_POST["uid"])){
					$pwd="";
					if($_POST['role']==2 && $session->userdata['role']!=2){
					    $panel->admin_message($lang->_('ERROR'),$lang->_('CANTASSIGNHIGHERRIGHT'),True,"editusers",3);
					}
					$_POST['key']=$session->generate_key(50);
					$salt = $session->generate_Key(6);
					if($_POST["password"]!=""){
						$pwd=", `password`='".hash("sha256",$salt.$db->escape($_POST["password"]))."', `loginkey`='".$_POST['key']."',`salt` = '".$salt."'";
					}
					$plugin->run_hook('admin_user_before_update',array('data'=>$_POST,'key'=>$key,'user_fid'=>$session->userdata['fuid']));
					$db->query("UPDATE `" . $config["prefix"] . "users` SET `username`='".$db->escape($_POST["name"])."',`realname`='".$db->escape($_POST["realname"])."',`email`='".$db->escape($_POST["email"])."',`from`='".$db->escape($_POST["from"])."',`gender`='".$db->escape($_POST["gender"])."',`bio`='".$db->escape($_POST["bio"])."',`homepage`='".$db->escape($_POST["homepage"])."',`role`='".$db->escape($_POST["role"])."',`active`='".$db->escape($_POST["active"])."',".$pwd." WHERE `uid`='".intval($_POST["uid"])."'");
					$_POST['user_fid']=$session->userdata['fuid'];
					$plugin->run_hook('admin_user_after_update',array('data'=>$_POST));
					$panel->admin_message($lang->_('SUCCESS'),$lang->_('DATASAVED'),True,"editusers",3);
				}else{
					$panel->title=$lang->_('EDITUSER');
					$panel->form(array("action"=>$config["path"]."/admin/index.php?panel=editusers&edituser=".$_GET["edituser"]));
					$result=$db->query("SELECT * FROM `" . $config["prefix"] . "users` WHERE uid='".intval($_GET["edituser"])."'");
					$data = $db->fetch_array($result);						
					$panel->content.="<h3>".$lang->_('USERNAME').":</h3>";
					$panel->field(array("name"=>"name","typ"=>"text","value"=>$data["username"]));
					$panel->content.="<h3>".$lang->_('REALNAME').":</h3>";
					$panel->field(array("name"=>"realname","typ"=>"text","value"=>$data["realname"]));
					$panel->content.="<h3>".$lang->_('MAIL').":</h3>";
					$panel->field(array("name"=>"email","value"=>$data["email"],"typ"=>"text"));
					$panel->content.="<h3>".$lang->_('PASSWORD').":</h3>";
					$panel->field(array("name"=>"password","value"=>"","typ"=>"password"));
					$panel->content.="<h3>".$lang->_('LOCATION').":</h3>";
					$panel->field(array("name"=>"from","value"=>$data["from"],"typ"=>"text"));
					$panel->content.="<h3>".$lang->_('GENDER').":</h3>";
					$panel->select(array($lang->_('DIV')=>"u", $lang->_('FEMALE')=>"f",$lang->_('MALE')=>"m"),$data["gender"],"gender");
					$panel->content.="<h3>".$lang->_('HOMEPAGE').":</h3>";
					$panel->field(array("name"=>"homepage","value"=>$data["homepage"],"typ"=>"text"));
					$panel->content.="<h3>".$lang->_('BANREASON').":</h3>";
					$panel->textarea(array("name"=>"bio","value"=>$data["bio"],"typ"=>"text"));
					$panel->content.="<br />";
					$panel->content.="<h3>".$lang->_('ROLE').":</h3>";
					$result=$db->query("SELECT `id`,`role_name` FROM `" . $config["prefix"] . "role`");
					while($rdata = $db->fetch_array($result)){
						$dd[$rdata["role_name"]]=$rdata["id"];			
					}		
					$panel->select($dd,$data["role"],"role");
					$panel->content.="<br />";
					$panel->content.="<h3>".$lang->_('STATUS').":</h3>";
					$panel->select(array($lang->_('ACTIVE')=>1,$lang->_('INACTIVE')=>0,$lang->_('BANNED')=>2),$data["active"],"active");
					$panel->content.="<br />";
					$panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1"));
					$panel->field(array("name"=>"uid","typ"=>"hidden","value"=>$data["uid"]));
					$panel->content.="<br />";
					$panel->submit();
					$panel->formClose();
					$panel->parse_page();
				}
			}elseif($_GET["action"]=="delete" && $_GET["user"]){
				$result=$db->query("SELECT * FROM `" . $config["prefix"] . "users` WHERE `uid`='".intval($_GET["user"])."'");
				$data = $db->fetch_array($result);
				$plugin->run_hook('admin_user_before_delete',array('data'=>$data));
				$db->query("DELETE FROM `" . $config["prefix"] . "users`  WHERE `uid`='".intval($_GET["user"])."'");
				$plugin->run_hook('admin_user_after_delete',array('data'=>$data));
				$panel->admin_message($lang->_('USERDELETED'),$lang->_('USERDELETEDSUCCESS'),True,"editusers",3);
			}else{
			
			$left="";
			$right="";
			$asmodule="";
			$mainmodule="";
			$result=$db->query("SELECT * FROM `" . $config["prefix"] . "users` u LEFT JOIN `" . $config["prefix"] . "role` r ON r.id=u.role ORDER BY u.`uid`");
			while ($row = $db->fetch_array($result)){
				$user[]=$row;
			}
			$panel->title=$lang->_('USERS');
			$panel->content.="<table id=\"users\" width=\"90%\" cellspacing=\"2\">
						<thead>						
						<tr>
						<th align=\"center\">".$lang->_('ID')."</th>
						<th align=\"center\">".$lang->_('USERNAME')."</th>
						<th align=\"center\">".$lang->_('REALNAME')."</th>
						<th align=\"center\">".$lang->_('ROLE')."</th>
						<th align=\"center\">".$lang->_('STATUS')."</th>
						<th align=\"center\">".$lang->_('ACTION')."</th>
						</tr></thead><tbody>";
			if(!empty($user)){
				foreach($user as $u){
					if($u['active']==1){
						$u['activetext']=$lang->_('ACTIVE');
						$u['activestyle']='';
					}elseif($u['active']==2){
						$u['activetext']=$lang->_('BANNED');
						$u['activestyle']='style="text-decoration:line-through;"';
					}else{
						$u['activetext']=$lang->_('INACTIVE');
						$u['activestyle']='style="font-style:italic;"';
					}
					$panel->content.="<tr ".$u['activestyle'].">
					<td align=\"center\">".$u["uid"]."</td>
					<td align=\"center\">".$u["username"]."</td>
					<td align=\"center\">".$u["realname"]."</td>
					<td align=\"center\">".$u["role_name"]."</td>
					<td align=\"center\">".$u['activetext']."</td>";
					if($u["uid"]==$session->userdata["uid"]){
						$panel->content.="<td align=\"center\"><a onclick=\"return confirmLink(this,'".$lang->_('BADIDEA')."')\" href=\"".$config["path"]."/admin/index.php?panel=editusers&amp;action=delete&amp;user=".$u["uid"]."\"><img src=\"".$config["path"]."/admin/images/icons/delete.png\" /></a> <a href=\"".$config["path"]."/admin/index.php?panel=editusers&amp;edituser=".$u["uid"]."\"><img src=\"".$config["path"]."/admin/images/icons/wrench.png\" /></a></td>
					</tr>";
					}else{
						$panel->content.="<td align=\"center\"><a onclick=\"return confirmLink(this, '".sprintf($lang->_('DELETEUSER'),$u["username"])."')\" href=\"".$config["path"]."/admin/index.php?panel=editusers&amp;action=delete&amp;user=".$u["uid"]."\"><img src=\"".$config["path"]."/admin/images/icons/delete.png\" /></a> <a href=\"".$config["path"]."/admin/index.php?panel=editusers&amp;edituser=".$u["uid"]."\"><img src=\"".$config["path"]."/admin/images/icons/wrench.png\" /></a></td>
					</tr>";
					}
				}
			}else{
			$panel->content.="<tr>
					<td align=\"center\" colspan=\"5\">".$lang->_('NOUSERS')."</td>
					</tr>";
			}
			$panel->content.="</tbody></table><br />";
	}
	}

		function meta() {
			global $module,$config,$db,$panel,$userinfo,$admin,$root;
			$meta='<script src="'.$config["path"].'/js/jquery/jquery.min.js" type="text/javascript">
				</script>
				<script src="'.$config["path"].'/js/datatables/js/jquery.dataTables.min.js" type="text/javascript">
				</script>
				<link type="text/css" rel="stylesheet" media="screen" href="'.$config["path"].'/js/datatables/css/jquery.dataTables.css" />
			<style type="text/css">
				.loadlayer {
					position: absolute;
					padding: 15px;
					width: 250px;
					background: #ffffff;
					border: 3px solid #c90000;
					text-align: center;
					margin-top: 60px;
					left: 50%;
					margin-left: -150px;
					margin-top: 100px;
					font-weight: bold;
					z-index:5;
				}
				div.section,div#createNew {
					border: 1px solid #CCCCCC;
					margin: 30px 5px;
					padding: 0px 0px 10px 0px;
					background-color: #EFEFEF;
				}

				div#createNew input { margin-left: 5px; }

				div#createNew h3, div.section h3{
					font-size: 14px;
					padding: 2px 5px;
					margin: 0 0 10px 0;
					background-color: #CCCCCC;
					display: block;
				}

				div.section h3 {
					cursor: move;
				}

				div.lineitem {
					margin: 3px 10px;
					padding: 2px;
					background-color: #FFFFFF;
					cursor: move;
				}

				h1 {
					margin-bottom: 0;
					font-size: 18px;
				}
			</style>
			<script type="text/javascript">
				function confirmLink(theLink, text)
				{
				// Confirmation is not required in the configuration file
				// or browser is Opera (crappy js implementation)
				if (typeof(window.opera) != \'undefined\') {
				return true;
				}
				
				var is_confirmed = confirm(text);
				if (is_confirmed) {
				if ( typeof(theLink.href) != \'undefined\' ) {
				theLink.href += \'&is_js_confirmed=1\';
				} else if ( typeof(theLink.form) != \'undefined\' ) {
				theLink.form.action += \'?is_js_confirmed=1\';
				}
				}
				
				return is_confirmed;
				} 
				</script>
				<script type="text/javascript">
					$(document).ready(function() {
						$(\'#users\').dataTable();
					} );
				</script>';
			return $meta;
				
		}

	
}
?>
