Andrew's Web Libraries (AWL)
 All Classes Namespaces Functions Variables Pages
AuthPlugins.php
1 <?php
28 require_once('AWLUtilities.php');
29 require_once('DataUpdate.php');
30 
37 function 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>
48 EOERRMSG;
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 
97 function 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