Index: trunk/kernel/include/usersession.php =================================================================== diff -u -r842 -r844 --- trunk/kernel/include/usersession.php (.../usersession.php) (revision 842) +++ trunk/kernel/include/usersession.php (.../usersession.php) (revision 844) @@ -21,7 +21,8 @@ var $SysPermCache; var $PermCacheGroups; var $CurrentUser; - var $UseTempKeys; + var $UseTempKeys; + var $AdminSearchFields; function clsUserSession($id=NULL, $TempKeys=FALSE) { @@ -33,6 +34,7 @@ $this->PermCache = array(); $this->PermCacheGroups =""; $this->UseTempKeys = $TempKeys; + $this->AdminSearchFields = array("p.Login", "g.Name", "us.IpAddress"); if( GetVar('help_usage') == 'install' ) return; @@ -66,6 +68,51 @@ } } + function AdminSearchWhereClause($SearchList) + { + $sql = ""; + if( !is_array($SearchList) ) $SearchList = explode(",",$SearchList); + + // remove empty elements + $SearchListTmp=Array(); + for($f = 0; $f < count($SearchList); $f++) + if($SearchList[$f]) + $SearchListTmp[]=$SearchList[$f]; + $SearchList=$SearchListTmp; + + if( !count($SearchList) || !count($this->AdminSearchFields) ) return ''; + + for($f = 0; $f < count($SearchList); $f++) + { + $value = $SearchList[$f]; + if( strlen($value) ) + { + $inner_sql = ""; + for($i = 0; $i < count($this->AdminSearchFields); $i++) + { + $field = $this->AdminSearchFields[$i]; + if( strlen( trim($value) ) ) + { + if( strlen($inner_sql) ) $inner_sql .= " OR "; + + if ($value != "Guest") { + $inner_sql .= $field." LIKE '%".$value."%'"; + } + else { + $inner_sql .= $field." IS NULL"; + } + } + } + if( strlen($inner_sql) ) + { + $sql .= '('.$inner_sql.') '; + if($f < count($SearchList) - 1) $sql .= " AND "; + } + } + } + return $sql; + } + function CopyToNewSession() { $OldKey = $this->GetSessionKey();