Privilege.php
Go to the documentation of this file.
00001 <?PHP 00002 00003 # 00004 # FILE: Privilege.php 00005 # 00006 # METHODS PROVIDED: 00007 # Privilege() 00008 # - constructor 00009 # SomeMethod($SomeParameter, $AnotherParameter) 00010 # - short description of method 00011 # 00012 # AUTHOR: Edward Almasy 00013 # 00014 # Part of the Collection Workflow Integration System 00015 # Copyright 2007 Edward Almasy and Internet Scout 00016 # http://scout.wisc.edu 00017 # 00018 00024 class Privilege { 00025 00026 # ---- PUBLIC INTERFACE -------------------------------------------------- 00027 00030 00037 function Privilege($Id, $Name = NULL) 00038 { 00039 global $G_PrivDescriptions; 00040 00041 # if caller requested creation of new entry 00042 if ($Id === NULL) 00043 { 00044 # get highest current ID 00045 $DB = new SPTDatabase(); 00046 $HighestId = $DB->Query("SELECT Id FROM CustomPrivileges" 00047 ." ORDER BY Id DESC LIMIT 1", "Id"); 00048 00049 # select new ID 00050 $this->Id = max(100, ($HighestId + 1)); 00051 00052 # add new entry to database 00053 $DB->Query("INSERT INTO CustomPrivileges (Id, Name)" 00054 ." VALUES (".$this->Id.", '".addslashes($Name)."')"); 00055 $this->Name = $Name; 00056 } 00057 else 00058 { 00059 # save ID 00060 $this->Id = intval($Id); 00061 00062 # if ID indicates predefined privilege 00063 if ($this->IsPredefined()) 00064 { 00065 # load privilege info from predefined priv array 00066 $this->Name = $G_PrivDescriptions[$this->Id]; 00067 } 00068 else 00069 { 00070 # load privilege info from database 00071 $DB = new SPTDatabase(); 00072 $this->Name = $DB->Query("SELECT Name FROM CustomPrivileges" 00073 ." WHERE Id = ".$this->Id, "Name"); 00074 } 00075 } 00076 } 00077 00082 function Delete() 00083 { 00084 if (!$this->IsPredefined()) 00085 { 00086 $DB = new SPTDatabase(); 00087 $DB->Query("DELETE FROM CustomPrivileges" 00088 ." WHERE Id = ".$this->Id); 00089 } 00090 } 00091 00096 00098 function Id() { return $this->Id; } 00104 function Name($NewValue = NULL) 00105 { 00106 if (($NewValue !== NULL) && !$this->IsPredefined()) 00107 { 00108 $DB = new SPTDatabase(); 00109 $DB->Query("UPDATE CustomPrivileges" 00110 ." SET Name = '".addslashes($NewValue)."'" 00111 ." WHERE Id = ".$this->Id); 00112 $this->Name = $NewValue; 00113 } 00114 return $this->Name; 00115 } 00116 00123 function IsPredefined($Id = NULL) 00124 { 00125 if ($Id === NULL) 00126 { 00127 $Id = $this->Id; 00128 } 00129 return (($Id > 0) && ($Id < 100)) ? TRUE : FALSE; 00130 } 00131 00134 # ---- PRIVATE INTERFACE ------------------------------------------------- 00135 00136 private $Id; 00137 private $Name; 00138 }