def index(self): """Handle the front-page.""" remote_addr = request.environ.get("REMOTE_ADDR", "unknown addr") try: ip = IPAddress(remote_addr) except: ip = None pass if request.identity == None: flash(_("Only logged in users can access this site")) raise HTTPUnauthorized(_("Only logged in users can access this site")) userid = request.identity["repoze.who.userid"] user = User.by_user_name(userid) if not user: log.warn("User %s is not in the database, adding" % userid) newUser = User() newUser.user_name = userid newUser.display_name = request.identity["cn"][0] DBSession.add(newUser) user = newUser for network in excluded_networks: if ip in network: return dict(page="index", remote_addr=remote_addr, isHome=False, isExcluded=ip in network) if remote_addr != user.home_addr: user.travel_addr = remote_addr user.travel_updated = datetime.now() try: # if the task is already running just piggy back on the next # run add_single_task(action=sync_entries, taskname="sync", initialdelay=5) except ValueError: pass return dict(page="index", remote_addr=remote_addr, isHome=remote_addr == user.home_addr, isExcluded=False)