diff --git a/include/class.auth.php b/include/class.auth.php
index 08760ed9d910ec0d1f1f41213a2aca13b9cd94d2..09c1a4c8f6993a2dca9267cc0a2f4220fd4de805 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 efd4f341c03f40cb3fa79756cc038533b7c86c7f..cc64d80ffc3fe9b88087f22344cf17e8d6170397 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) {