<?php
- class mw_data_users extends mw_data
- {
+ class mw_data_users extends mw_data{
var $users;
var $_user;
# users
#
- function users($start = 0, $alpha = null, $status = null)
- { $sgbd = $this->sgbd();
+ function users($start = 0, $alpha = null, $status = null){
+ $sgbd = $this->sgbd();
$env = $this->env();
$users = array("list" => array(), "total" => 0);
$res = array();
- if($rst = $sgbd->open_data("users"))
- { while($v_rst = $sgbd->fetch_data($rst))
- { if(isset($v_rst))
- { if(!isset($alpha) || (isset($v_rst["login"]) && strtolower(substr($v_rst["login"], 0, 1)) == strtolower($alpha)))
- { if(!isset($status) || (isset($v_rst["status"]) && $v_rst["status"] == $status))
- { $res[$v_rst["id"]] = $v_rst;
+ if($rst = $sgbd->open_data("users")){
+ while($v_rst = $sgbd->fetch_data($rst)){
+ if(isset($v_rst)){
+ if(!isset($alpha) || (isset($v_rst["login"]) && strtolower(substr($v_rst["login"], 0, 1)) == strtolower($alpha))){
+ if(!isset($status) || (isset($v_rst["status"]) && $v_rst["status"] == $status)){
+ $res[$v_rst["id"]] = $v_rst;
$users["total"]++;
}
}
}
- else
- { $res = false;
+ else{
+ $res = false;
break;
}
}
$sgbd->close_data($rst);
- if($res !== false)
- { $n = 0;
- foreach($res as $id_user => $user)
- { $n++;
- if(!$env->config("max_list") || ($n > $start && $n <= ($start + $env->config("max_list"))))
- { $users["list"][$user["id"]] = $user;
+ if($res !== false){
+ $n = 0;
+ foreach($res as $id_user => $user){
+ $n++;
+ if(!$env->config("max_list") || ($n > $start && $n <= ($start + $env->config("max_list")))){
+ $users["list"][$user["id"]] = $user;
if(!isset($this->users)) $this->users = array();
$this->users[$user["id"]] = $user;
}
return $users;
}
- function user_by_id($id)
- { if(!isset($this->users)) $this->users = array();
+ function user_by_id($id){
+ if(!isset($this->users)) $this->users = array();
if(isset($this->users[$id])) return $this->users[$id];
$sgbd = $this->sgbd();
- if(($user = $sgbd->get_data("users", $id)) !== false)
- { $this->users[$id] = $user;
+ if(($user = $sgbd->get_data("users", $id)) !== false){
+ $this->users[$id] = $user;
}
return $user;
}
- function user($login)
- { $sgbd = $this->sgbd();
+ function user($login){
+ $sgbd = $this->sgbd();
$user = array();
- if($rst = $sgbd->open_data("users"))
- { while($v_rst = $sgbd->fetch_data($rst))
- { if(isset($v_rst))
- { if(isset($v_rst["login"]) && $v_rst["login"] == $login)
- { $user = $v_rst;
+ if($rst = $sgbd->open_data("users")){
+ while($v_rst = $sgbd->fetch_data($rst)){
+ if(isset($v_rst)){
+ if(isset($v_rst["login"]) && $v_rst["login"] == $login){
+ $user = $v_rst;
break;
}
}
$sgbd->close_data($rst);
}
else $user = false;
- if($user !== false)
- { if(!isset($this->users)) $this->users = array();
+ if($user !== false){
+ if(!isset($this->users)) $this->users = array();
$this->users[$user["id"]] = $user;
}
return $user;
}
- function user_exists($login)
- { $sgbd = $this->sgbd();
+ function user_exists($login){
+ $sgbd = $this->sgbd();
$EXISTS = 0;
- if($rst = $sgbd->open_data("users"))
- { while($v_rst = $sgbd->fetch_data($rst))
- { if(isset($v_rst))
- { if(isset($v_rst["login"]) && $v_rst["login"] == $login)
- { $EXISTS++;
+ if($rst = $sgbd->open_data("users")){
+ while($v_rst = $sgbd->fetch_data($rst)){
+ if(isset($v_rst)){
+ if(isset($v_rst["login"]) && $v_rst["login"] == $login){
+ $EXISTS++;
}
}
- else
- { $EXISTS = false;
+ else{
+ $EXISTS = false;
break;
}
}
return $EXISTS;
}
- function add_user($login, $password, $email, $status)
- { $sgbd = $this->sgbd();
- return $sgbd->add_data
- ( "users",
- array
- ( "login" => $login,
+ function add_user($login, $password, $email, $status){
+ $sgbd = $this->sgbd();
+ return $sgbd->add_data(
+ "users",
+ array(
+ "login" => $login,
"password" => $password,
"email" => $email,
"status" => $status
);
}
- function set_user($id, $login, $password, $email, $status)
- { $sgbd = $this->sgbd();
- return $sgbd->set_data
- ( "users",
+ function set_user($id, $login, $password, $email, $status){
+ $sgbd = $this->sgbd();
+ return $sgbd->set_data(
+ "users",
$id,
- array
- ( "login" => $login,
+ array(
+ "login" => $login,
"password" => $password,
"email" => $email,
"status" => $status
);
}
- function del_user($login)
- { if(($user = $this->user($login)) !== false)
- { $sgbd = $this->sgbd();
+ function del_user($login){
+ if(($user = $this->user($login)) !== false){
+ $sgbd = $this->sgbd();
return $sgbd->del_data("users", $user["id"]);
}
return false;
# status
#
- function status()
- { if(!isset($this->user_status)) return false;
+ function status(){
+ if(!isset($this->user_status)) return false;
return $this->user_status;
}
- function init_user_status($status = array())
- { $sgbd = $this->sgbd();
+ function init_user_status($status = array()){
+ $sgbd = $this->sgbd();
$this->user_status = array();
- if($rst = $sgbd->open_data("user_status"))
- { while($v_rst = $sgbd->fetch_data($rst))
- { if(isset($v_rst))
- { $this->user_status[$v_rst["id"]] = $v_rst;
+ if($rst = $sgbd->open_data("user_status")){
+ while($v_rst = $sgbd->fetch_data($rst)){
+ if(isset($v_rst)){
+ $this->user_status[$v_rst["id"]] = $v_rst;
}
- else
- { $this->user_status = false;
+ else{
+ $this->user_status = false;
break;
}
}
$sgbd->close_data($rst);
}
else $this->user_status = false;
- if($status && $this->user_status !== false)
- { foreach($status as $new_user_status)
- { $id_status = false;
- foreach($this->user_status as $user_status) if($new_user_status["nom"] == $user_status["nom"])
- { $id_status = $user_status["id"];
+ if($status && $this->user_status !== false){
+ foreach($status as $new_user_status){
+ $id_status = false;
+ foreach($this->user_status as $user_status) if($new_user_status["nom"] == $user_status["nom"]){
+ $id_status = $user_status["id"];
break;
}
- if($id_status)
- { $SAME = true;
- foreach($new_user_status as $status_key => $status_value)
- { if(!isset($this->user_status[$id_status][$status_key]) || $this->user_status[$id_status][$status_key] != $status_value)
- { $SAME = false; break;
+ if($id_status){
+ $SAME = true;
+ foreach($new_user_status as $status_key => $status_value){
+ if(!isset($this->user_status[$id_status][$status_key]) || $this->user_status[$id_status][$status_key] != $status_value){
+ $SAME = false;
+ break;
}
}
- if(!$SAME)
- { if($sgbd->set_data("user_status", $id_status, $new_user_status)) $this->user_status[$id_status] = $new_user_status;
- else { $this->user_status = false; break; }
+ if(!$SAME){
+ if($sgbd->set_data("user_status", $id_status, $new_user_status)) $this->user_status[$id_status] = $new_user_status;
+ else{
+ $this->user_status = false;
+ break;
+ }
}
}
- else
- { if($id_status = $sgbd->add_data("user_status", $new_user_status)) $this->user_status[$id_status] = $new_user_status;
- else { $this->user_status = false; break; }
+ else{
+ if($id_status = $sgbd->add_data("user_status", $new_user_status)) $this->user_status[$id_status] = $new_user_status;
+ else{
+ $this->user_status = false;
+ break;
+ }
}
}
}
return $this->user_status;
}
- function init_action_status($status = array())
- { if(!isset($this->user_status)) return false;
+ function init_action_status($status = array()){
+ if(!isset($this->user_status)) return false;
$sgbd = $this->sgbd();
$this->action_status = array();
- if($rst = $sgbd->open_data("action_status"))
- { while($v_rst = $sgbd->fetch_data($rst))
- { if(isset($v_rst))
- { $this->action_status[$v_rst["id"]] = $v_rst;
+ if($rst = $sgbd->open_data("action_status")){
+ while($v_rst = $sgbd->fetch_data($rst)){
+ if(isset($v_rst)){
+ $this->action_status[$v_rst["id"]] = $v_rst;
}
- else
- { $this->action_status = false;
+ else{
+ $this->action_status = false;
break;
}
}
$sgbd->close_data($rst);
}
else $this->action_status = false;
- if($status && $this->action_status !== false)
- { $STATUS_OK = true;
- foreach($status as $id_new_action_status => $new_action_status)
- { $FOUND = $new_action_status["id_status"] == "0";
- if(!$FOUND) foreach($this->user_status as $user_status)
- { if($new_action_status["id_status"] == $user_status["nom"])
- { $FOUND = true;
+ if($status && $this->action_status !== false){
+ $STATUS_OK = true;
+ foreach($status as $id_new_action_status => $new_action_status){
+ $FOUND = $new_action_status["id_status"] == "0";
+ if(!$FOUND) foreach($this->user_status as $user_status){
+ if($new_action_status["id_status"] == $user_status["nom"]){
+ $FOUND = true;
$status[$id_new_action_status]["id_status"] = $user_status["id"];
}
}
- if(!$FOUND)
- { $STATUS_OK = false;
+ if(!$FOUND){
+ $STATUS_OK = false;
break;
}
}
- if($STATUS_OK)
- { foreach($status as $new_action_status)
- { $id_status = false;
- foreach($this->action_status as $action_status)
- { if
- ( $new_action_status["action"] == $action_status["action"]
+ if($STATUS_OK){
+ foreach($status as $new_action_status){
+ $id_status = false;
+ foreach($this->action_status as $action_status){
+ if(
+ $new_action_status["action"] == $action_status["action"]
&& $new_action_status["id_status"] == $action_status["id_status"]
- )
- { $id_status = $action_status["id"];
+ ){
+ $id_status = $action_status["id"];
break;
}
}
- if($id_status)
- { $SAME = true;
- foreach($new_action_status as $status_key => $status_value)
- { if(!isset($this->action_status[$id_status][$status_key]) || $this->action_status[$id_status][$status_key] != $status_value)
- { $SAME = false; break;
+ if($id_status){
+ $SAME = true;
+ foreach($new_action_status as $status_key => $status_value){
+ if(!isset($this->action_status[$id_status][$status_key]) || $this->action_status[$id_status][$status_key] != $status_value){
+ $SAME = false;
+ break;
}
}
- if(!$SAME)
- { if($id_status = $sgbd->add_data("action_status", $new_action_status)) $this->action_status[$id_status] = $new_action_status;
- else { $this->action_status = false; break; }
+ if(!$SAME){
+ if($id_status = $sgbd->add_data("action_status", $new_action_status)) $this->action_status[$id_status] = $new_action_status;
+ else{
+ $this->action_status = false;
+ break;
+ }
}
}
- else
- { if($id_status = $sgbd->add_data("action_status", $new_action_status)) $this->action_status[$id_status] = $new_action_status;
- else { $this->action_status = false; break; }
+ else{
+ if($id_status = $sgbd->add_data("action_status", $new_action_status)) $this->action_status[$id_status] = $new_action_status;
+ else{
+ $this->action_status = false;
+ break;
+ }
}
}
}
return $this->action_status;
}
- function get_user_status()
- { $user = $this->get_session_user();
+ function get_user_status(){
+ $user = $this->get_session_user();
if($user && isset($user["status"])) return $user["status"];
return 0;
}
- function get_action_status($mod, $controller = "index", $action = "index", $set_status = array())
- { $sgbd = $this->sgbd();
- if($rst = $sgbd->open_data("action_status"))
- { while($status !==false && $v_rst = $sgbd->fetch_data($rst))
- { if(isset($v_rst) && isset($v_rst["action"]) && isset($v_rst["id_status"]))
- { if
- ( $v_rst["action"] == $mod
+ function get_action_status($mod, $controller = "index", $action = "index", $set_status = array()){
+ $sgbd = $this->sgbd();
+ if($rst = $sgbd->open_data("action_status")){
+ while($status !==false && $v_rst = $sgbd->fetch_data($rst)){
+ if(isset($v_rst) && isset($v_rst["action"]) && isset($v_rst["id_status"])){
+ if(
+ $v_rst["action"] == $mod
|| $v_rst["action"] == $mod."/".$controller
|| $v_rst["action"] == $mod."/".$controller."/".$action
- )
- { if(!isset($status[$v_rst["action"]])) $status[$v_rst["action"]] = array();
+ ){
+ if(!isset($status[$v_rst["action"]])) $status[$v_rst["action"]] = array();
$status[$v_rst["action"]][$v_rst["id_status"]] = true;
}
}
$sgbd->close_data($rst);
}
else $status = false;
- if($status !== false)
- { if($set_status)
- { foreach($set_status as $new_action_status)
- { $id_status = false;
- foreach($status as $user_status) if($new_user_status["nom"] == $user_status["nom"])
- { $id_status = $user_status["id"];
+ if($status !== false){
+ if($set_status){
+ foreach($set_status as $new_action_status){
+ $id_status = false;
+ foreach($status as $user_status) if($new_user_status["nom"] == $user_status["nom"]){
+ $id_status = $user_status["id"];
break;
}
- if($id_status)
- { $SAME = true;
- foreach($new_user_status as $status_key => $status_value)
- { if(!isset($status[$id_status][$status_key]) || $status[$id_status][$status_key] != $status_value)
- { $SAME = false; break;
+ if($id_status){
+ $SAME = true;
+ foreach($new_user_status as $status_key => $status_value){
+ if(!isset($status[$id_status][$status_key]) || $status[$id_status][$status_key] != $status_value){
+ $SAME = false;
+ break;
}
}
- if(!$SAME)
- { if($sgbd->set_data("user_status", $id_status, $new_user_status)) $status[$id_status] = $new_user_status;
- else { $status = false; break; }
+ if(!$SAME){
+ if($sgbd->set_data("user_status", $id_status, $new_user_status)) $status[$id_status] = $new_user_status;
+ else{
+ $status = false;
+ break;
+ }
}
}
- else
- { if($id_status = $sgbd->add_data("user_status", $new_user_status)) $status[$id_status] = $new_user_status;
- else { $status = false; break; }
+ else{
+ if($id_status = $sgbd->add_data("user_status", $new_user_status)) $status[$id_status] = $new_user_status;
+ else{
+ $status = false;
+ break;
+ }
}
}
}
return $status;
}
- function creation_default_status()
- { $sgbd = $this->sgbd();
+ function creation_default_status(){
+ $sgbd = $this->sgbd();
$default_status = 0;
- if($rst = $sgbd->open_data("user_status"))
- { while($v_rst = $sgbd->fetch_data($rst))
- { if(isset($v_rst))
- { if(isset($v_rst["creation_default"]) && $v_rst["creation_default"] == 1)
- { $default_status = $v_rst["id"];
+ if($rst = $sgbd->open_data("user_status")){
+ while($v_rst = $sgbd->fetch_data($rst)){
+ if(isset($v_rst)){
+ if(isset($v_rst["creation_default"]) && $v_rst["creation_default"] == 1){
+ $default_status = $v_rst["id"];
break;
}
}
- else
- { $default_status = false;
+ else{
+ $default_status = false;
break;
}
}
# log in / out
#
- function login($login, $password)
- { if(($user = $this->user($login)) !== false)
- { if($this->password_ok($user, $password))
- { if(!$this->set_session($user)) $user = false;
+ function login($login, $password){
+ if(($user = $this->user($login)) !== false){
+ if($this->password_ok($user, $password)){
+ if(!$this->set_session($user)) $user = false;
}
- else
- { $this->clear_session();
+ else{
+ $this->clear_session();
$user = array();
}
}
return $user;
}
- function logout()
- { return $this->clear_session();
+ function logout(){
+ return $this->clear_session();
}
- function user_ok($user)
- { return
+ function user_ok($user){
+ return
strcmp(md5($user["password"].$_SESSION["id"]), $_SESSION["pass"]) == 0
&& $_SESSION["ip"] == $_SERVER["REMOTE_ADDR"];
}
- function password_ok($user, $password)
- { return
+ function password_ok($user, $password){
+ return
strcmp(md5($user["password"].$_SESSION["id"]), $password) == 0
&& $_SESSION["ip"] == $_SERVER["REMOTE_ADDR"];
}
# session
#
- function load_session()
- { session_start();
+ function load_session(){
+ session_start();
if(!isset($_SESSION["id"])) $this->clear_session();
- if
- ( $user =
- ( isset($_COOKIE["user"]) || isset($_SESSION["user"]) ?
+ if(
+ $user = (
+ isset($_COOKIE["user"]) || isset($_SESSION["user"]) ?
$this->user(isset($_COOKIE["user"]) ? $_COOKIE["user"] : $_SESSION["user"])
: array()
)
- )
- { if(isset($_COOKIE["user"])) $this->set_session($user);
- if(!$this->user_ok($user))
- { $this->clear_session();
+ ){
+ if(isset($_COOKIE["user"])) $this->set_session($user);
+ if(!$this->user_ok($user)){
+ $this->clear_session();
$user = array();
}
}
return $user;
}
- function set_session($user)
- { $_SESSION["user"] = $user["login"];
+ function set_session($user){
+ $_SESSION["user"] = $user["login"];
$_SESSION["pass"] = md5($user["password"].$_SESSION["id"]);
$env = $this->env();
return setcookie("user", $user["login"], time() + (60 * 60 * 24 * 7), $env->path("web"));
}
- function clear_session()
- { unset($_SESSION["user"]);
+ function clear_session(){
+ unset($_SESSION["user"]);
unset($_SESSION["pass"]);
$_SESSION["ip"] = $_SERVER["REMOTE_ADDR"];
$_SESSION["id"] = md5(rand());
return setcookie("user", "", 0, $env->path("web"));
}
- function get_session_user() { return $this->_user; }
+ function get_session_user(){
+ return $this->_user;
+ }
# ----------------------------------------------------------------------------------------
# uploads
#
- function check_user_uploads_dir($user = null)
- { $env = $this->env();
+ function check_user_uploads_dir($user = null){
+ $env = $this->env();
$user_dir = $env->path("content")."uploads/".(isset($user) ? $user : $this->_user["id"]);
if(!file_exists($user_dir)) @mkdir($user_dir);
return file_exists($user_dir);