Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Membership
- {
- private $DBH; //Database Handler
- private $userData; //Users information
- public function __construct(PDO $DBH)
- {
- $this->DBH = &$DBH;
- }
- //check to see if user data is valid
- public function validate_user($username, $password)
- {
- $sql = "SELECT id FROM users WHERE username=? AND passwordHash=?";
- $query = $this->DBH->prepare($sql);
- $query->execute(array($username, $password));
- if($query->rowCount() <= 0)
- {
- return false;
- }
- return true;
- }
- public function login($username, $passwordHash)
- {
- if(!$this->validate_user($username, $passwordHash))
- {
- $this->logout();
- return false;
- }
- //get the users data from MySQL
- $sql = "SELECT * FROM users WHERE username=? AND passwordHash=? LIMIT 1";
- $query = $this->DBH->prepare($sql);
- $data = $query->execute(array($username, $passwordHash));
- $user = $query->fetch(PDO::FETCH_ASSOC);
- //set up the sessions
- $_SESSION['user'] = $user;
- $_SESSION['user']['loggedIn'] = true;
- //set a reference to the session for local use
- $this->userData = &$_SESSION['user'];
- //set up perms
- if($this->userData['perms'] != 0)
- {
- //is not superuser
- //explode perms
- $perms = explode(".", $this->userData['perms']);
- unset($this->userData['perms']);
- foreach($perms as $perm)
- {
- $this->userData['perms'][] = $perm;
- }
- }
- return true;
- }
- public function logout()
- {
- unset ($_SESSION['user']);
- $this->no_user();
- return true;
- }
- public function get_field($fieldName)
- {
- if(isset($this->userData[$fieldName]))
- {
- return $this->userData[$fieldName];
- }
- //error if it does not exist
- die("Membership Error!");
- }
- public function no_user()
- {
- if(!isset($_SESSION['user']))
- {
- if(isset($_SESSION['user']))
- {
- unset($_SESSION['user']);
- }
- //set the perms for anonomous users
- $_SESSION['user']['loggedIn'] = false;
- $_SESSION['user']['perms'] = array("1", "0", "0");
- $this->userData = &$_SESSION['user'];
- }else{
- $this->userData = &$_SESSION['user'];
- }
- }
- public function test_perms($field)
- {
- if(!is_array($this->userData['perms']))
- {
- //is the superuser
- return true;
- }
- if(!isset($this->userData['perms'][$field]))
- {
- return false;
- }
- if($this->userData['perms'][$field] == 1)
- {
- return true;
- }
- return false;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement