3 require_once('mitsql.lib.php');
7 function Login($u, $p=null) {
8 $opt = is_null($p)?'':sprintf(" AND Password='%s' ", mysql_escape_string(base64_encode($p)));
9 $sql = sprintf("SELECT UserId, Username, Name, Email, UL, bEnabled
13 mysql_escape_string($u));
14 $r = fetchRows(DBSelect($sql),'UserId');
15 $this->info = count($r)?array_shift($r):null;
18 return !is_null($this->info);
21 return $this->isEnabled() && $this->getUL()>0;
23 function isEnabled() {
24 return $this->exists() && $this->info['bEnabled']==1;
26 function getUserId() {
27 return $this->exists() && $this->info['UserId'];
29 function getUsername() {
30 return $this->exists() && $this->info['Username'];
33 return $this->exists() && $this->info['Name'];
36 return $this->exists() && $this->info['Email'];
39 return $this->exists() && $this->info['UL'];
45 $this->Login($this->getUsername());
47 function update($name=null,$email=null) {
48 if (!$this->exists()) return;
50 is_null($name) || $arr['Name'] = $name;
51 is_null($email) || $arr['Email'] = $email;
52 $sql = sprintf("UPDATE User %s WHERE UserId = '%s'",
53 buildSQLSet($arr), mysql_escape_string($this->getUserId()));
59 function isLoggedIn($aLogin=null) {
60 if (is_null($aLogin)) {
64 return !empty($aLogin) && is_a($aLogin, 'Login') && $aLogin->isValid();
68 return $_SERVER['SERVER_PORT'] == 443;
71 function getSSLCert() {
72 if (DEVEL && file_exists('.forceauth')) {
73 $fu = explode('|',file_get_contents('.forceauth'));
77 $name = isset($_SERVER['SSL_CLIENT_S_DN_CN'])?$_SERVER['SSL_CLIENT_S_DN_CN']:null;
78 $email = isset($_SERVER['SSL_CLIENT_S_DN_Email'])?$_SERVER['SSL_CLIENT_S_DN_Email']:null;
80 if (!is_null($email)) {
81 $user = explode('@',$email);
83 return array('Username'=>$user, 'Name'=>$name, 'Email'=>$email);
91 function redirect($target=NULL) {
92 $base = (is_null($target)||substr($target,0,1)=='?')?$_SERVER['REDIRECT_URL']:(dirname($_SERVER['REDIRECT_URL']).'/');
93 redirectFull(is_null($target)?$base:($base.$target));
95 function redirectFull($target) {
96 redirect2((isSSL()?'https://':'http://').$_SERVER['SERVER_NAME'].$target);
98 function redirect2($target) {
99 header('Location: '.$target);
105 function addUser($sslCredentials) {
107 $arr = array_merge($sslCredentials, $_NEW_USER);
108 $sql = sprintf("INSERT INTO User %s",
109 buildSQLInsert($arr));
110 return DBInsert($sql);