OK this is a little hacky, but we will get the port from the
@server_uri which has been passed in from the configuration
This is complex because we have the dev environment we might
be running in AND we have the whole virtualhost context too
port = splits[2] or '80/'
port = port.replace(/\//g, '')
if port is '80'
port = ''
else if port is '443'
port = ''
scheme = "https"
else
port = ':' + port
return "#{scheme}://#{req.hostname}#{port}/"
_resources_to_cache: [
"isNewSessionForUserWithUri"
"verifiedUsingToken"
"verifiedFromIP"
"joinAttemptFromIP"
]
userNo_sessNo_regex: /nooron\:session\:([0-9A-Za-z]{1,7})\_([0-9A-Za-z]{1,5})/
reqd: (req, res, next) =>
if not req.session?
@log.warning "a clever little monkey just tried #{req.path} without login"
res.status(403)
res.send("you must be logged in")
return
next()
make_verification_token: (person_uri, ip) =>
verification = @noodb.allege(
person_uri
@joinAttemptFromIP
ip
"nrn:auth_log"
)
return verification.i.key()
was_previously_verifiedUsingToken: (person_uri) =>
return @noodb.q(person_uri, @verifiedUsingToken).last()?
get_real_verification_token: (a_maybe_token) =>
verification_spogi = @noodb.by_id.getOnly(a_maybe_token)
return verification_spogi? and verification_spogi.i.key() or undefined
record_verification_of_person_uri_from_ip_using_token: (person_uri, ip, token) =>
@noodb.allege(
person_uri
@verifiedFromIP
[ip]
"nrn:auth_log"
)
@noodb.allege(
person_uri
@verifiedUsingToken
"nrn:#{token}"
"nrn:auth_log"
)
return
is_verification_already_used: (person_uri, ip, token) =>
return @noodb.q(person_uri, @verifiedUsingToken, "nrn:#{token}").all().length > 0
get_next_session_token_for: (person_uri) =>
return @get_next_session_for(person_uri).s.key()
get_latest_verification_token_for_person_uri: (person_uri) =>
last_verification_spogi = @noodb.q(person_uri, @joinAttemptFromIP).last()
return last_verification_spogi? and last_verification_spogi.i.key() or undefined
get_prev_session_for: (person_uri) =>