public function isSignInLocked()
    {
        $nb_session = $this->nb_application->getSession();
        if ($nb_session === null || !($nb_session instanceof CNabuHTTPSession)) {
            throw new ENabuCoreException(ENabuCoreException::ERROR_SESSION_NOT_FOUND);
        }

        $nb_site = $this->nb_application->getHTTPServer()->getSite();
        if ($nb_site === null || !($nb_site instanceof CNabuSite)) {
            throw new ENabuCoreException(ENabuCoreException::ERROR_SITE_NOT_FOUND);
        }

        $max_signin_retries = $nb_site->getMaxSignInRetries();
        $signin_locked_delay = $nb_site->getSignInLockDelay();
        $signin_retries = $nb_session->getVariable('signin_retries', 0);
        $signin_last_fail_timestamp = $nb_session->getVariable('signin_last_fail_timestamp', 0);
        $now = time() - $signin_last_fail_timestamp;

        if ($now > $signin_locked_delay) {
            $this->resetSignInLock();
            $retval = false;
        } else {
            $retval = $max_signin_retries > 0 && $signin_retries >= $max_signin_retries && $now < $signin_locked_delay;
        }

        return $retval;
    }