/**
  * @param AuthorizedPage $Page
  * @param string $Email
  * @param string $AccessCode
  * @param string $ClientKey
  * @param string $ClientInfo
  * @return Authorization|boolean
  */
 public static function Fetch(AuthorizedPage $Page, $Email, $AccessCode, $ClientKey = null, $ClientInfo = null)
 {
     if (!$Page || !$Page->ID || !$Page->IsAllowedEmail(strtolower($Email))) {
         return false;
     }
     return Authorization::get()->filter(array('PageID' => $Page->ID, 'Email' => strtolower($Email), 'AccessCode' => strtoupper($AccessCode), 'ClientKey' => $ClientKey ? $ClientKey : Authorization::generateClientKey(), 'ClientInfo' => $ClientInfo ? $ClientInfo : Authorization::generateClientInfo()))->First();
 }