]> andersk Git - sql-web.git/blobdiff - lib/security.lib.php
minor portability fixes
[sql-web.git] / lib / security.lib.php
index 32532bce10d97ea0d399daf4e75fbea3e554d030..fbdea6274b6c8d1ed31b03b7d3c5539a5723ca94 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+/*
+       (c) 2005 Joe Presbrey
+*/
 
 require_once('mitsql.lib.php');
 
@@ -9,7 +12,7 @@ class Login {
                if (empty($u)) return;
                $this->u = $u;
                $this->p = $p;
-               if (is_numeric($u)) {
+               if ((string)intval($u)===(string)$u) {
                        $this->id = $u;
                        $opt = sprintf(" Username = '%s' OR UserId = '%s'", mysql_escape_string($u), mysql_escape_string($u));
                } else {
@@ -70,7 +73,7 @@ class Login {
         is_null($name) || $arr['Name'] = $name;
         is_null($email) || $arr['Email'] = $email;
                $upd = buildSQLSet($arr);
-        $sql = sprintf("UPDATE User %s WHERE UserId = '%s'",
+        $sql = sprintf("UPDATE User SET %s WHERE UserId = '%s'",
                         $upd, mysql_escape_string($this->getUserId()));
                if (!empty($upd) && $upd != 'SET')
                        DBUpdate($sql);
@@ -123,6 +126,9 @@ class User {
     function isOverQuota() {
         return $this->exists()?($this->info['bOverQuota']>0?true:false):'';
     }
+    function getDBQuotaHard() {
+        return $this->exists()?$this->info['nDatabasesHard']:0;
+    }
     function getBytes() {
         if($this->exists()) {
                        $arr['nBytes'] = $this->info['nBytes'];
@@ -133,7 +139,7 @@ class User {
     }
        function setPassword($pwd) {
                $arr['Password'] = base64_encode($pwd);
-        $sql = sprintf("UPDATE User %s WHERE UserId = '%s'",
+        $sql = sprintf("UPDATE User SET %s WHERE UserId = '%s'",
                         buildSQLSet($arr), mysql_escape_string($this->getUserId()));
         DBUpdate($sql);
                $sql = sprintf('SET PASSWORD FOR \'%s\'@\'%%\'=PASSWORD(\'%s\')',
@@ -146,7 +152,7 @@ class User {
                $arr['Password'] = base64_encode($pwd);
                $arr['bEnabled'] = 1;
                $arr['dSignup'] = 'NOW()';
-        $sql = sprintf("UPDATE User %s WHERE UserId = '%s'",
+        $sql = sprintf("UPDATE User SET %s WHERE UserId = '%s'",
                         buildSQLSet($arr), mysql_escape_string($this->getUserId()));
         DBUpdate($sql);
 
@@ -289,23 +295,21 @@ function getSSLCert() {
 ## 302 REDIRECTS
 
 function redirect($target=null,$secure=null) {
-    $base = (is_null($target)||substr($target,0,1)=='?')?$_SERVER['REDIRECT_URL']:(dirname($_SERVER['REDIRECT_URL']).'/');
+    $base = (is_null($target)||substr($target,0,1)=='?')?URI:(dirname(URI).'/');
     redirectFull(is_null($target)?$base:($base.$target),$secure);
 }
 function redirectStart() {
        redirectFull(BASE_URL,null);
 }
 function redirectFull($target,$secure) {
-       //redirect2((((isSSL()&&is_null($secure))||$secure==true)?'https://':'http://').$_SERVER['SERVER_NAME'].$target);
-       redirect2((((isSSL()&&is_null($secure))||$secure==true)?'https://scripts-cert.mit.edu':'http://scripts.mit.edu').$target);
+       redirect2((((isSSL()&&is_null($secure))||$secure==true)?BASE_HTTPS:BASE_HTTP).$target);
 }
 function redirect2($target) {
        header('Location: '.$target);
        exit;
 }
 function flipSSL() {
-       //return (isSSL()?'http://':'https://').$_SERVER['SERVER_NAME'].$_SERVER['REDIRECT_URL'];
-       return (isSSL()?'http://scripts.mit.edu':'https://scripts-cert.mit.edu').$_SERVER['REDIRECT_URL'];
+       return (isSSL()?BASE_HTTP:BASE_HTTPS).URI;
 }
 
 ## USER SCRIPTS
@@ -337,6 +341,7 @@ function addDB($dbname,$userid) {
        global $_NEW_DB, $_NEW_DBQUOTA, $_NEW_DBOWNER;
 
        DBCreate(sprintf('CREATE DATABASE `%s`', mysql_escape_string($dbname)));
+       if (mysql_error()) return false;
 
        $newdb['Name'] = $dbname;
        $arr = array_merge($newdb, $_NEW_DB);
@@ -354,27 +359,29 @@ function addDB($dbname,$userid) {
                } else {
                        return false;
                }
-               $sql = sprintf("UPDATE DB %s WHERE DB.DatabaseId = '%s'",
+               $sql = sprintf("UPDATE DB SET %s WHERE DB.DatabaseId = '%s'",
                                                buildSQLSet($arr),
                                                $DBId);
                DBUpdate($sql);
-               return $DBId;
-       } else {
-               $arr = $_NEW_DBQUOTA;
-               $arr['DatabaseId'] = $DBId;
-               $sql = sprintf("INSERT IGNORE INTO DBQuota %s",
-                                               buildSQLInsert($arr));
-               DBInsert($sql);
-
-               $arr = $_NEW_DBOWNER;
-               $arr['DatabaseId'] = $DBId;
-               $arr['UserId'] = $userid;
-               $sql = sprintf("INSERT IGNORE INTO DBOwner %s",
-                                               buildSQLInsert($arr));
-               DBInsert($sql);
-
-               return $DBId;
        }
+
+       DBDelete(sprintf("DELETE FROM DBOwner WHERE DatabaseId = '%s'", mysql_escape_string($DBId)));
+       DBDelete(sprintf("DELETE FROM DBQuota WHERE DatabaseId = '%s'", mysql_escape_string($DBId)));
+       
+       $arr = $_NEW_DBQUOTA;
+       $arr['DatabaseId'] = $DBId;
+       $sql = sprintf("INSERT IGNORE INTO DBQuota %s",
+                                       buildSQLInsert($arr));
+       DBInsert($sql);
+
+       $arr = $_NEW_DBOWNER;
+       $arr['DatabaseId'] = $DBId;
+       $arr['UserId'] = $userid;
+       $sql = sprintf("INSERT IGNORE INTO DBOwner %s",
+                                       buildSQLInsert($arr));
+       DBInsert($sql);
+
+       return $DBId;
 }
 
 function delDB($dbname) {
@@ -383,7 +390,7 @@ function delDB($dbname) {
        DBCreate(sprintf('DROP DATABASE `%s`', mysql_escape_string($dbname)));
 
        $arr['bEnabled'] = 0;
-       $sql = sprintf("UPDATE DB %s WHERE DB.Name = '%s'",
+       $sql = sprintf("UPDATE DB SET %s WHERE DB.Name = '%s'",
                                        buildSQLSet($arr),
                                        $dbname);
        DBUpdate($sql);
This page took 0.046162 seconds and 4 git commands to generate.