From 103c95d54c1a75e41ebddc667cea229f6a506388 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@enhancesoft.com>
Date: Fri, 3 Jan 2014 15:44:35 +0000
Subject: [PATCH] Change AuthenticatedUser user to interface class.

This is necessary to force downstream classes to implement key required
functions.
---
 include/class.auth.php  | 12 +++++++-----
 include/class.staff.php | 16 +++++++++++++++-
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/include/class.auth.php b/include/class.auth.php
index 08760ed9d..09c1a4c8f 100644
--- a/include/class.auth.php
+++ b/include/class.auth.php
@@ -2,13 +2,15 @@
 require(INCLUDE_DIR.'class.ostsession.php');
 require(INCLUDE_DIR.'class.usersession.php');
 
-class AuthenticatedUser {
-    // How the user was authenticated
-    var $backend;
+
+interface AuthenticatedUser {
 
     // Get basic information
-    function getId() {}
-    function getUsername() {}
+    function getId();
+    function getUsername();
+    function setBackend($bk);
+    function getBackend();
+    function getRole();
 }
 
 interface AuthDirectorySearch {
diff --git a/include/class.staff.php b/include/class.staff.php
index efd4f341c..cc64d80ff 100644
--- a/include/class.staff.php
+++ b/include/class.staff.php
@@ -22,7 +22,7 @@ include_once(INCLUDE_DIR.'class.passwd.php');
 include_once(INCLUDE_DIR.'class.user.php');
 include_once(INCLUDE_DIR.'class.auth.php');
 
-class Staff extends AuthenticatedUser {
+class Staff implements AuthenticatedUser {
 
     var $ht;
     var $id;
@@ -95,6 +95,20 @@ class Staff extends AuthenticatedUser {
         return $this->config->getInfo() + $this->getHastable();
     }
 
+    // AuthenticatedUser implementation...
+    // TODO: Move to an abstract class that extends Staff
+    function setBackend($bk) {
+
+    }
+
+    function getBackend() {
+
+    }
+
+    function getRole() {
+        return 'staff';
+    }
+
     /*compares user password*/
     function check_passwd($password, $autoupdate=true) {
 
-- 
GitLab