Andrew's Web Libraries (AWL)
AuthPlugins.php
1<?php
28require_once('AWLUtilities.php');
29require_once('DataUpdate.php');
30
37function auth_other_awl( $username, $password ) {
38 global $c;
39
40 $authconn = pg_Connect($c->authenticate_hook['config']['connection']);
41 if ( ! $authconn ) {
42 echo <<<EOERRMSG
43 <html><head><title>Database Connection Failure</title></head><body>
44 <h1>Database Error</h1>
45 <h3>Could not connect to PostgreSQL database</h3>
46 </body>
47 </html>
48EOERRMSG;
49 exit(1);
50 }
51
52 if ( isset($c->authenticate_hook['config']['columns']) )
53 $cols = $c->authenticate_hook['config']['columns'];
54 else
55 $cols = "*";
56
57 if ( isset($c->authenticate_hook['config']['where']) )
58 $andwhere = " AND ".$c->authenticate_hook['config']['where'];
59 else
60 $andwhere = "";
61
62 $qry = new AwlQuery("SELECT $cols FROM usr WHERE lower(username) = text(?) $andwhere", strtolower($username) );
63 $qry->SetConnection($authconn);
64 if ( $qry->Exec('Login',__LINE,__FILE__) && $qry->rows() == 1 ) {
65 $usr = $qry->Fetch();
66 if ( session_validate_password( $password, $usr->password ) ) {
67
68 $qry = new AwlQuery("SELECT * FROM usr WHERE user_no = $usr->user_no;" );
69 if ( $qry->Exec('Login',__LINE,__FILE__) && $qry->rows() == 1 )
70 $type = "UPDATE";
71 else
72 $type = "INSERT";
73
74 $qry = new AwlQuery( sql_from_object( $usr, $type, 'usr', "WHERE user_no=$usr->user_no" ) );
75 $qry->Exec('Login',__LINE__,__FILE__);
76
80 if ( isset($usr->active) && $usr->active == 'f' ) return false;
81
82 return $usr;
83 }
84 }
85
86 return false;
87
88}
89
90
97function auth_external( $username, $password ) {
98 global $c;
99
100 $qry = new AwlQuery("SELECT * FROM usr WHERE active AND lower(username) = text(?) ", strtolower($username) );
101 if ( $qry->Exec('Login',__LINE__,__FILE__) && $qry->rows() == 1 ) {
102 $usr = $qry->Fetch();
103 return $usr;
104 }
105
106 return false;
107
108}
109
110