File: //proc/thread-self/root/home/awaldron/public_html/archive/demo/functions/_login.php
<?php
function admin($ret) {
$sql = "SELECT * FROM tbl_employees,tbl_pgroup WHERE tbl_pgroup.pgroup_id=1 AND tbl_pgroup.pgroup_mod=tbl_employees.username";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0) {
$admin = mysql_fetch_array($res);
if ($ret == "email") return $admin["email"];
if ($ret == "fullname") return $admin["fname"]." ".$admin["lname"];
}
}
function admin_panel($content_owner) {
if (!is_logged()) return FALSE;
else return is_admin();
}
function authorize($content_owner) {
if (!is_logged()) return FALSE;
else if (is_admin()) return TRUE;
else if ($_SESSION["auth_user"] === $content_owner) return TRUE;
else if (is_array($content_owner)) {
if (in_array($_SESSION["auth_user"],$content_owner)) return TRUE;
else return FALSE;
}
else return FALSE;
}
function auto_login() {
// Look for valid cookie
if ($_COOKIE["auth_user"] != "") {
$_SESSION["auth_user"] = $_COOKIE["auth_user"];
return true;
} else return false;
}
function build_pgroup($pgid,$pg_used=array(),$pass=0) {
if (zero(count(build_pgroup_parts($pgid)))) return array();
if ($pass == 0) $pg_used[0] = $pgid;
$emponly = quickSQL("SELECT pgroup_emponly FROM tbl_pgroup WHERE pgroup_id=".$pgid);
$sql1 = "SELECT A.username FROM tbl_pgroup_user as A, tbl_employees as B WHERE A.pgroup_id=".$pgid." AND B.username=A.username AND B.is_employee=1".($emponly?" AND B.emp_type_id < 4":"");
$sql2 = "SELECT A.username FROM tbl_group_user as A, tbl_pgroup_orggroup as B, tbl_employees as C WHERE B.pgroup_id=".$pgid." AND B.group_id=A.group_id AND A.username=C.username AND C.is_employee=1".($emponly?" AND C.emp_type_id < 4":"");
$sql3 = "SELECT B.pgroup_auto_select FROM tbl_pgroup_autogroup as A, tbl_pgroup_auto as B WHERE A.pgroup_id=".$pgid." AND A.pgroup_auto_id=B.pgroup_auto_id";
$sql4 = "SELECT pgroup_include FROM tbl_pgroup_pgroup WHERE pgroup_id=".$pgid;
$res1 = mysql_query($sql1);
$res2 = mysql_query($sql2);
$res3 = mysql_query($sql3);
$res4 = mysql_query($sql4);
// Add the pgroup moderator to the pgroup
$puser = array(quickSQL("SELECT pgroup_mod FROM tbl_pgroup WHERE pgroup_id=".$pgid));
// Add any page owners to the pgroup
if (isset($_GET["p"])) {
$owners = get_owners($_GET["p"]);
$puser = array_unique(array_merge($puser,$owners));
}
if (mysql_num_rows($res1) > 0) {
for ($i=0; $i < mysql_num_rows($res1); $i++) {
$row = mysql_fetch_array($res1);
$puser[] = strtolower($row["username"]);
}
}
if (mysql_num_rows($res2) > 0) {
for ($i=0; $i < mysql_num_rows($res2); $i++) {
$row = mysql_fetch_array($res2);
$puser[] = strtolower($row["username"]);
}
}
if (mysql_num_rows($res3) > 0) {
for ($i=0; $i < mysql_num_rows($res3); $i++) {
$sql = mysql_fetch_array($res3);
$res = mysql_query($sql["pgroup_auto_select"]);
for ($j=0; $j < mysql_num_rows($res); $j++) {
$row = mysql_fetch_array($res);
$puser[] = strtolower($row["username"]);
}
}
}
if (mysql_num_rows($res4) > 0) {
for ($i=0; $i < mysql_num_rows($res4); $i++) {
$row = mysql_fetch_array($res4);
if (!in_array($row["pgroup_include"],$pg_used)) {
$pg_used[count($pg_used)] = $row["pgroup_include"];
$sub_pgroup = build_pgroup($row["pgroup_include"],$pg_used,$ctr++);
$puser = array_merge($puser,$sub_pgroup);
}
}
}
sort($puser);
return array_unique($puser);
}
function build_pgroup_parts($pgid) {
$sql1 = "SELECT username FROM tbl_pgroup_user WHERE pgroup_id=".$pgid;
$sql2 = "SELECT group_id FROM tbl_pgroup_orggroup WHERE pgroup_id=".$pgid;
$sql3 = "SELECT pgroup_include FROM tbl_pgroup_pgroup WHERE pgroup_id=".$pgid;
$res1 = mysql_query($sql1);
$res2 = mysql_query($sql2);
$res3 = mysql_query($sql3);
$out = array();
if (mysql_num_rows($res1) > 0)
for ($i=0; $row = mysql_fetch_array($res1); $i++) $out["users"][$i] = $row["username"];
if (mysql_num_rows($res2) > 0)
for ($i=0; $row = mysql_fetch_array($res2); $i++) $out["groups"][$i] = $row["group_id"];
if (mysql_num_rows($res3) > 0)
for ($i=0; $row = mysql_fetch_array($res3); $i++) $out["pgroups"][$i] = $row["pgroup_include"];
return $out;
}
function check_pgroup($user,$gid) {
// CASE: EVERYONE EXCEPT CONTRACTORS
if (zero(count(build_pgroup_parts($gid)))) {
$emp_type_id = quickSQL("SELECT emp_type_id FROM tbl_employees WHERE username='".$user."'");
if ($emp_type_id < 4) return TRUE;
else return FALSE;
} else {
if (in_array(strtolower($user),build_pgroup($gid))) return TRUE;
else return FALSE;
}
}
function delete_pgroup($pgid) {
quickUPDATE("DELETE FROM tbl_pgroup_user WHERE pgroup_id=".$pgid);
quickUPDATE("DELETE FROM tbl_pgroup_pgroup WHERE pgroup_id=".$pgid);
quickUPDATE("DELETE FROM tbl_pgroup_orggroup WHERE pgroup_id=".$pgid);
quickUPDATE("DELETE FROM tbl_pgroup_autogroup WHERE pgroup_id=".$pgid);
quickUPDATE("DELETE FROM tbl_pgroup WHERE pgroup_id=".$pgid);
}
function force_login() {
if (!is_logged()) auto_login();
if (!is_logged()) {
echo "<html><head></head><body><form action=\"http://".DOMAIN."/login.php\" method=\"post\" name=\"force_login\">\n";
echo "<input type=\"hidden\" name=\"refer\" value=\"".self()."\">\n";
echo "<input type=\"hidden\" name=\"force\" value=\"1\">\n";
echo "</form>\n";
echo "<script>document.force_login.submit();</script>\n";
return TRUE;
}
return FALSE;
}
function is_admin() {
if (!is_logged) return FALSE;
else return check_pgroup(strtolower($_SESSION["auth_user"]),1);
}
function is_contrib() {
if (!is_logged) return FALSE;
else {
// DB METHOD
//$po = quickSQL("SELECT COUNT(username) FROM tbl_page_owners WHERE username='".$_SESSION["auth_user"]."'");
//$so = quickSQL("SELECT COUNT(username) FROM tbl_section_admins WHERE username='".$_SESSION["auth_user"]."'");
//if (($po+$so) > 0) return TRUE;
//else return FALSE;
if (file_exists("files/user/".$_SESSION["auth_user"])) return TRUE;
else return FALSE;
}
}
function is_logged() {
if (!isset($_SESSION["auth_user"])) {
return false;
} else {
return true;
}
}
function login($user,$pass) {
$user = strtolower($user);
if (LOGIN_METHOD == "ldap") return login_ldap($user,$pass);
else if (LOGIN_METHOD == "local") return login_local($user,$pass);
else return false;
}
function login_local($user,$pass) {
$sql = "SELECT * FROM tbl_employees WHERE username='".$user."' AND `password`='".md5($pass)."' AND acct_confirmed=1";
$result = mysql_query($sql);
if (mysql_num_rows($result) < 1) {
return false;
} else {
$row = mysql_fetch_array($result);
$_SESSION["auth_user"] = $row["username"];
// Set last_login in table
$sql = "UPDATE tbl_employees SET last_login=".time()." WHERE username='".$_SESSION["auth_user"]."'";
$result = mysql_query($sql);
// Set cookie to keep user logged in.
setcookie("auth_user",$_SESSION["auth_user"],(time()+60*60*72)); //expires in 3 days
return true;
}
}
function login_ldap($u,$p) {
$loginid = quickSQL("SELECT ldap_login FROM tbl_employees WHERE username='".$u."' AND acct_confirmed=1");
if ($loginid == FALSE) return FALSE;
else {
//$host = "vc-ad3.vocollect.int";
$port = 389;
$dn = "CN=VC-AD1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=vocollect,DC=int";
$conn = FALSE;
for ($i=1; (($i===FALSE) || ($i<=3)); $i++) {
$conn = ldap_connect("vc-ad".$i.".vocollect.int",$port);
}
ldap_set_option($conn,LDAP_OPT_PROTOCOL_VERSION,3);
@ $bind = ldap_bind($conn,$loginid,$p);
if( !$bind ) {
return FALSE;
} else {
$_SESSION["auth_user"] = $u;
// Set last_login in table
$sql = "UPDATE tbl_employees SET last_login=".time()." WHERE username='".$_SESSION["auth_user"]."'";
$result = mysql_query($sql);
// Set cookie to keep user logged in.
setcookie("auth_user",$_SESSION["auth_user"],(time()+60*60*24*7)); //expires in 7 days
return true;
}
}
}
function logout() {
setcookie("auth_user","",1);
session_unset();
session_destroy();
}
function whois() {
if (is_logged()) return $_SESSION["auth_user"];
else {
if (strstr(gethostbyaddr($_SERVER["REMOTE_ADDR"]),".internal") !== FALSE) {
$whois = strtolower(substr(gethostbyaddr($_SERVER["REMOTE_ADDR"]),0,strpos(gethostbyaddr($_SERVER["REMOTE_ADDR"]),".internal")));
$whois = str_replace("-new","",$whois);
$whois = str_replace("-","",$whois);
return $whois;
} else {
return gethostbyaddr($_SERVER["REMOTE_ADDR"]);
}
}
}
?>