From 0732d32f508045da40fe9df607b9ef20ce2d198f Mon Sep 17 00:00:00 2001
From: xaver <xaver@ispconfig3>
Date: Tue, 06 Mar 2012 10:03:23 -0500
Subject: [PATCH] join fix - disappered in commit + Switch traffic joins, because its faster - Tested in a productive system (MySQL 5.1) as query few tausend domains 1-3 sec for Webtraffic sort, faster SQL = faster and MySQL 5.5 is much faster with joins (standard is not sorted with slow traffic querys) -> slowest part is coping the tables into temp -> more tweeks on cache... -> faster by heavy use
---
interface/lib/classes/auth.inc.php | 49 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 46 insertions(+), 3 deletions(-)
diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index ef9b4fc..aa4eb9f 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -1,7 +1,7 @@
<?php
/*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -29,6 +29,12 @@
*/
class auth {
+ var $client_limits = null;
+
+ public function get_user_id()
+ {
+ return $_SESSION['s']['user']['userid'];
+ }
public function is_admin() {
if($_SESSION['s']['user']['typ'] == 'admin') {
@@ -36,7 +42,7 @@
} else {
return false;
}
- }
+ }
public function has_clients($userid) {
global $app, $conf;
@@ -69,6 +75,24 @@
return false;
}
}
+
+ //** This function returns given client limit as integer, -1 means no limit
+ public function get_client_limit($userid, $limitname)
+ {
+ global $app;
+
+ // simple query cache
+ if($this->client_limits===null)
+ $this->client_limits = $app->db->queryOneRecord("SELECT client.* FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id");
+
+ // isn't client -> no limit
+ if(!$this->client_limits)
+ return -1;
+
+ if(isset($this->client_limits['limit_'.$limitname])) {
+ return $this->client_limits['limit_'.$limitname];
+ }
+ }
//** This function removes a given group id from a given user.
public function remove_group_from_user($userid,$groupid) {
@@ -94,12 +118,31 @@
public function check_module_permissions($module) {
// Check if the current user has the permissions to access this module
if(!stristr($_SESSION["s"]["user"]["modules"],$module)) {
- header("Location: ../index.php");
+ // echo "LOGIN_REDIRECT:/index.php";
+ header("Location: /index.php");
exit;
}
}
+ public function get_random_password($length = 8) {
+ $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+ $password = '';
+ for ($n=0;$n<$length;$n++) {
+ $password.=$base64_alphabet[mt_rand(0,63)];
+ }
+ return $password;
+ }
+ public function crypt_password($cleartext_password) {
+ $salt="$1$";
+ $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+ for ($n=0;$n<8;$n++) {
+ $salt.=$base64_alphabet[mt_rand(0,63)];
+ }
+ $salt.="$";
+ return crypt($cleartext_password,$salt);
+ }
+
}
?>
\ No newline at end of file
--
Gitblit v1.9.1