cryptkey = models.CharField(max_length=100, null=False, blank=False,
help_text="Use tools/communityauth/generate_cryptkey.py to create a key")
comment = models.TextField(null=False, blank=True)
+ cooloff_hours = models.IntegerField(null=False, blank=False, default=0,
+ help_text="Number of hours a user must have existed in the systems before allowed to log in to this site")
def __unicode__(self):
return self.name
from Crypto import Random
import time
import json
+from datetime import datetime, timedelta
from pgweb.util.decorators import ssl_required
from pgweb.util.contexts import NavContext
return render_to_response('account/communityauth_noinfo.html', {
}, NavContext(request, 'account'))
+ # Check for cooloff period
+ if site.cooloff_hours > 0:
+ if (datetime.now() - request.user.date_joined) < timedelta(hours=site.cooloff_hours):
+ return render_to_response('account/communityauth_cooloff.html', {
+ 'site': site,
+ }, NavContext(request, 'account'))
+
info = {
'u': request.user.username.encode('utf-8'),
'f': request.user.first_name.encode('utf-8'),
--- /dev/null
+{%extends "base/page.html"%}
+{%block contents%}
+<h1>Community authentication</h1>
+<p>
+The site your are trying to log in to ({{site.name}}) requires a
+cool-off period between account creation and logging in. Please
+try again later, or contact the postgresql.org webmasters if you
+have an urgent need to log in.
+</p>
+{%endblock%}
+