Warning: Cannot modify header information - headers already sent by (output started at /var/www/jonas-eriksen.dk/pic/private/index.php:1) in /var/www/jonas-eriksen.dk/pic/private/index.php on line 215
var/www/jonas-eriksen.dk/result/admin/Class.admin.php 0000644 00000020311 15233557455 0016613 0 ustar 00 db = $DB_con;
}
public function register($username, $password, $name, $level)
{
try {
$new_password = password_hash($password, PASSWORD_DEFAULT);
$stmt = $this->db->prepare("INSERT INTO result_internaluser(username, password, name, admin_level) VALUES (:uname, :upass, :name, :level)");
$stmt->bindparam(":uname", $username);
$stmt->bindparam(":upass", $new_password);
$stmt->bindparam(":name", $name);
$stmt->bindparam(":level", $level);
$stmt->execute();
return $stmt;
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function login($uname, $upassword)
{
try {
$stmt = $this->db->prepare("SELECT * FROM result_internaluser WHERE username = :uname LIMIT 1");
$stmt->execute(array(':uname' => $uname));
$adminRow = $stmt->fetch(PDO::FETCH_ASSOC);
if ($stmt->rowCount() == 1 && $adminRow['isDeleted'] == 0) {
if (password_verify($upassword, $adminRow['password'])) {
$_SESSION['username'] = $adminRow['username'];
$_SESSION['admin_level'] = $adminRow['admin_level'];
$_SESSION['userId'] = $adminRow['id'];
$_SESSION['resetPassword'] = $adminRow['resetPassword'];
$_SESSION['last_activity'] = time();
$time_stmt = $this->db->prepare("UPDATE result_internaluser SET lastLogin = CURRENT_TIME WHERE username = :uname LIMIT 1");
$time_stmt->execute(array(':uname' => $uname));
return true;
} else {
return false;
}
}
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function admin_level($level)
{
if (isset($_SESSION['username'])) {
if ($_SESSION['admin_level'] == $level || $level == 0) {
return true;
}
else if ( $level != 0 && $_SESSION['admin_level'] < $level)
{
return true;
}
}
}
public function passwordResetCheck()
{
if (isset($_SESSION['username'])) {
if ($_SESSION['resetPassword']) {
//$this->redirect('/admin/password.php?reset');
echo "";
exit();
}
}
}
public function redirect($url)
{
header("location: $url");
exit('Should have redirected');
}
public function logout()
{
session_unset(); // unset $_SESSION variable for the run-time
session_destroy(); // destroy session data in storage
return true;
}
public function getUsernames($uname)
{
$stmt = $this->db->prepare("SELECT username FROM result_internaluser WHERE username = :uname");
$stmt->execute(array(':uname' => $uname));
return $stmt->fetch(PDO::FETCH_ASSOC);
}
public function changePassword($username, $password, $newPassword)
{
//TODO: Check if password is equal to old
try {
$stmt = $this->db->prepare("SELECT * FROM result_internaluser WHERE username = :uname LIMIT 1");
$stmt->execute(array(':uname' => $username));
$adminRow = $stmt->fetch(PDO::FETCH_ASSOC);
if ($stmt->rowCount() == 1 && $adminRow['isDeleted'] == 0) {
if (password_verify($password, $adminRow['password'])) {
$stmt2 = $this->db->prepare("UPDATE result_internaluser SET password = :password, resetPassword = 0 WHERE username = :username");
$stmt2->execute(array(':password' => password_hash($newPassword, PASSWORD_DEFAULT), ':username' => $username));
$this->logout();
$this->redirect('/');
}
}
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function changePasswordForUser($admin_username, $password, $user_id, $newPassword)
{
try {
$stmt = $this->db->prepare("SELECT * FROM result_internaluser WHERE username = :uname LIMIT 1");
$stmt->execute(array(':uname' => $admin_username));
$adminRow = $stmt->fetch(PDO::FETCH_ASSOC);
if ($stmt->rowCount() == 1 && $adminRow['isDeleted'] == 0) {
if (password_verify($password, $adminRow['password'])) {
$stmt2 = $this->db->prepare("UPDATE result_internaluser SET password = :password, resetPassword = 1 WHERE id = :id");
$stmt2->execute(array(':password' => password_hash($newPassword, PASSWORD_DEFAULT), ':id' => $user_id));
$this->redirect('/admin/show.php?admin=' . $user_id . '&success-code=true');
}
else{
return false;
}
}
else
{
return false;
}
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function forceChangePasswords()
{
try {
$stmt = $this->db->prepare("SELECT id FROM result_internaluser");
$stmt->execute();
$users = $stmt->fetch(PDO::FETCH_ASSOC);
foreach ($users as $user) {
$updateStmt = $this->db->prepare("UPDATE result_internaluser SET resetPassword = 1");
$updateStmt->execute();
}
$this->logout();
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function forceChangePasswordForUser($id)
{
try {
$updateStmt = $this->db->prepare("UPDATE result_internaluser SET resetPassword = 1 WHERE id = :id");
$updateStmt->execute(array(":id" => $id));
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function getAdmin($id)
{
try {
$stmt = $this->db->prepare("SELECT username, name, isDeleted, admin_level, lastLogin FROM result_internaluser WHERE id = :id");
$stmt->execute(array(":id" => $id));
$admin = $stmt->fetch(PDO::FETCH_BOTH);
return $admin;
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function getAllAdmins()
{
try {
$stmt = $this->db->prepare("SELECT username, name, isDeleted, admin_level, lastLogin, id FROM result_internaluser ORDER BY name, username");
$stmt->execute();
$admin = $stmt->fetchall();
return $admin;
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function saveAdmin($id, $name, $deleted, $level)
{
try {
$stmt = $this->db->prepare("UPDATE result_internaluser SET name = :name, isDeleted = :deleted, admin_level = :level WHERE id = :id");
$stmt->execute(array(":id" => $id, ":name" => $name, ":deleted" => $deleted, ":level" => $level));
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function getAnniversaryYears()
{
try {
$stmt = $this->db->prepare("SELECT year FROM result_anniversary;");
$stmt->execute();
return $stmt->fetchall();
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function getAnniversaryUsers($years)
{
try {
$stmt = $this->db->prepare("SELECT shooterId, fullname, memberDate, id FROM `result_users` WHERE `memberDate` in (" . $years . ") AND isDeleted = 0;");
$stmt->execute();
return $stmt->fetchall();
} catch (PDOException $e) {
echo $e->getMessage();
}
}
}
?>