From f19b706844bb2f5b43a3d4e7d77d71049ddd5fcf Mon Sep 17 00:00:00 2001 From: Peter Rotich <peter@osticket.com> Date: Mon, 20 Jan 2014 05:20:05 +0000 Subject: [PATCH] Add ticket access link recovery authentication backend --- include/class.auth.php | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/include/class.auth.php b/include/class.auth.php index e3bce85fe..cf16dd3b9 100644 --- a/include/class.auth.php +++ b/include/class.auth.php @@ -749,4 +749,36 @@ class AuthTokenAuthentication extends UserAuthenticationBackend { } UserAuthenticationBackend::register(AuthTokenAuthentication); +//Simple ticket lookup backend used to recover ticket access link +class AccessLinkAuthentication extends UserAuthenticationBackend { + static $name = "Ticket Access Link Authentication"; + static $id = "authlink"; + + function authenticate($email, $number) { + + if (!($ticket = Ticket::lookupByNumber($number)) + || !($user=User::lookup(array('emails__address' => + $email)))) + return false; + + //Ticket owner? + if ($ticket->getUserId() == $user->getId()) + $user = $ticket->getOwner(); + //Collaborator? + elseif (!($user = Collaborator::lookup(array('userId' => + $user->getId(), 'ticketId' => + $ticket->getId())))) + return false; //Bro, we don't know you! + + + return new ClientSession($user); + } + + //We are not actually logging in the user.... + function login($user, $bk) { + return true; + } + +} +UserAuthenticationBackend::register(AccessLinkAuthentication); ?> -- GitLab