sf-static/sql/lib/usermanager.php

94 lines
2.1 KiB
PHP
Raw Normal View History

2023-02-28 18:21:07 +00:00
<?php
/**
* This file is a part of MyWebSQL package
* library classes to manage mysql users and permissions
*
* @file: lib/usermanager.php
* @author Ovais Tariq <http://ovaistariq.net>
* @maintainer Samnan ur Rehman
* @copyright (c) 2008-2014 Samnan ur Rehman
* @web http://mywebsql.net
* @license http://mywebsql.net/license
*/
include_once 'privileges.php';
include_once 'user.php';
class UserManager {
protected $db;
protected $legacy;
public function __construct( $db, $legacy = false ) {
$this->db = $db;
$this->legacy = (bool)$legacy;
User::setDb( $this->db );
}
public function getUser($userName, $host = '%') {
$user = User::factory( $this->legacy );
$user->userName = $userName;
$user->host = $host;
return $user;
}
public function add($userName, $host = '%', $password = '') {
$user = User::factory( $this->legacy );
$user->userName = $userName;
$user->host = $host;
$user->password = $password;
return $user->add();
}
public function update($currUsername, $currHost, $newUsername, $newHost) {
$user = User::factory( $this->legacy );
$user->userName = $currUsername;
$user->host = $currHost;
return $user->update( $newUsername, $newHost );
}
public function updatePassword($userName, $host, $newPassword) {
$user = User::factory( $this->legacy );
$user->userName = $userName;
$user->host = $host;
return $user->updatePassword( $newPassword );
}
public function delete($userName, $host) {
$user = User::factory( $this->legacy );
$user->userName = $userName;
$user->host = $host;
return $user->delete();
}
public function getUsersList() {
$tblName = Privileges::$privilegesTable;
$sql = "SELECT `User`, `Host`, `Password` FROM $tblName ORDER BY `User`, `Host`";
if( false == $this->db->query( $sql ) )
return array();
$users = array();
while( $row = $this->db->fetchRow() ) {
$user = User::factory( $this->legacy );
$user->userName = $row['User'];
$user->host = $row['Host'];
$user->password = $row['Password'];
$users[] = $user;
}
return $users;
}
}