1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 19:52:06 +00:00

link to config that exists, py3 in capture-wsgi.py, get systemd unit file for admin-console in place

This commit is contained in:
George Hunt 2019-12-05 19:23:46 +00:00
parent 30e726dc04
commit f699f206b5
3 changed files with 33 additions and 31 deletions

View file

@ -43,13 +43,6 @@
state: link state: link
when: captiveportal_enabled | bool when: captiveportal_enabled | bool
- name: Enable nginx to service the sites in checkurls list
file:
src: /etc/nginx/sites-available/capture.conf
path: /etc/nginx/sites-enabled/capture.conf
state: link
when: captiveportal_enabled | bool
- name: Copy unit file for uWSGI service - name: Copy unit file for uWSGI service
template: template:
src: roles/captiveportal/templates/uwsgi-captiveportal.service src: roles/captiveportal/templates/uwsgi-captiveportal.service
@ -71,7 +64,16 @@
shell: /usr/sbin/iiab-divert-to-nginx shell: /usr/sbin/iiab-divert-to-nginx
- name: Run script to generate nginx servers from checkurls input list - name: Run script to generate nginx servers from checkurls input list
shell: /usr/sbin/iiab-make-cp-servers.py command: /usr/sbin/iiab-make-cp-servers.py
args:
creates: /etc/nginx/sites-available/capture.conf
- name: Enable nginx to service the sites in checkurls list
file:
src: /etc/nginx/sites-available/capture.conf
path: /etc/nginx/sites-enabled/capture.conf
state: link
when: captiveportal_enabled | bool
- name: Install nginx's captiveportal.conf from template if captiveportal_enabled - name: Install nginx's captiveportal.conf from template if captiveportal_enabled
template: template:

View file

@ -58,7 +58,7 @@ logger.debug("")
logger.debug('##########################################') logger.debug('##########################################')
# what language are we speaking? # what language are we speaking?
lang = os.environ['LANG'][0:2] lang = os.environ['LANG'][0:2]
logger.debug('speaking: %s'%lang) logger.debug('speaking: {}'.format(lang))
def tstamp(dtime): def tstamp(dtime):
'''return a UNIX style seconds since 1970 for datetime input''' '''return a UNIX style seconds since 1970 for datetime input'''
@ -111,8 +111,7 @@ def timeout_info(ip):
def is_inactive(ip): def is_inactive(ip):
ts=tstamp(datetime.datetime.now(tzutc())) ts=tstamp(datetime.datetime.now(tzutc()))
current_ts, last_ts, send204after = timeout_info(ip) current_ts, last_ts, send204after = timeout_info(ip)
logger.debug("In is_inactive. current_ts:%s. last_ts:%s. send204after:%s"%\ logger.debug("In is_inactive. current_ts:{}. last_ts:{}. send204after:{}".format(current_ts,last_ts,send204after,))
(current_ts,last_ts,send204after,))
if not last_ts: if not last_ts:
return True return True
if ts - int(last_ts) > INACTIVITY_TO: if ts - int(last_ts) > INACTIVITY_TO:
@ -124,7 +123,7 @@ def is_after204_timeout(ip):
ts=tstamp(datetime.datetime.now(tzutc())) ts=tstamp(datetime.datetime.now(tzutc()))
current_ts, last_ts, send204after = timeout_info(ip) current_ts, last_ts, send204after = timeout_info(ip)
if send204after == 0: return False if send204after == 0: return False
logger.debug("function: is_after204_timeout send204after:%s current: %s"%(send204after,ts,)) logger.debug("function: is_after204_timeout send204after:{} current: {}".format((send204after,ts,)))
if not send204after: if not send204after:
return False return False
if ts - int(send204after) > 0: if ts - int(send204after) > 0:
@ -182,7 +181,7 @@ def android(environ, start_response):
if system_version is None: if system_version is None:
return put_302(environ, start_response) return put_302(environ, start_response)
if system_version[0:1] < '6': if system_version[0:1] < '6':
logger.debug("system < 6:%s"%system_version) logger.debug("system < 6:{}".format(system_version))
location = '/android_splash' location = '/android_splash'
set_204after(ip,0) set_204after(ip,0)
elif system_version[:1] >= '7': elif system_version[:1] >= '7':
@ -291,7 +290,7 @@ def banner(environ, start_response):
status = '200 OK' status = '200 OK'
headers = [('Content-type', 'image/png')] headers = [('Content-type', 'image/png')]
start_response(status, headers) start_response(status, headers)
image = open("%s/js-menu/menu-files/images/iiab_banner6.png"%doc_root, "rb").read() image = open("{}/js-menu/menu-files/images/iiab_banner6.png".format(doc_root), "rb").read()
return [image] return [image]
def bootstrap(environ, start_response): def bootstrap(environ, start_response):
@ -299,7 +298,7 @@ def bootstrap(environ, start_response):
status = '200 OK' status = '200 OK'
headers = [('Content-type', 'text/javascript')] headers = [('Content-type', 'text/javascript')]
start_response(status, headers) start_response(status, headers)
boot = open("%s/common/js/bootstrap.min.js"%doc_root, "rb").read() boot = open("{}/common/js/bootstrap.min.js".format(doc_root), "rb").read()
return [boot] return [boot]
def jquery(environ, start_response): def jquery(environ, start_response):
@ -307,7 +306,7 @@ def jquery(environ, start_response):
status = '200 OK' status = '200 OK'
headers = [('Content-type', 'text/javascript')] headers = [('Content-type', 'text/javascript')]
start_response(status, headers) start_response(status, headers)
boot = open("%s/common/js/jquery.min.js"%doc_root, "rb").read() boot = open("{}/common/js/jquery.min.js".format(doc_root), "rb").read()
return [boot] return [boot]
def bootstrap_css(environ, start_response): def bootstrap_css(environ, start_response):
@ -315,7 +314,7 @@ def bootstrap_css(environ, start_response):
status = '200 OK' status = '200 OK'
headers = [('Content-type', 'text/css')] headers = [('Content-type', 'text/css')]
start_response(status, headers) start_response(status, headers)
boot = open("%s/common/css/bootstrap.min.css"%doc_root, "rb").read() boot = open("{}/common/css/bootstrap.min.css".format(doc_root), "rb").read()
return [boot] return [boot]
def null(environ, start_response): def null(environ, start_response):
@ -388,18 +387,18 @@ def application (environ, start_response):
if 'HTTP_X_FORWARDED_FOR' in environ: if 'HTTP_X_FORWARDED_FOR' in environ:
ip = environ['HTTP_X_FORWARDED_FOR'].strip() ip = environ['HTTP_X_FORWARDED_FOR'].strip()
else: else:
data = ['%s: %s\n' % (key, value) for key, value in sorted(environ.items()) ] data = ['{}: {}\n'.format(key, value) for key, value in sorted(environ.items()) ]
#logger.debug("need the correct ip:%s"%data) #logger.debug("need the correct ip:{}".format(data))
ip = environ['REMOTE_ADDR'].strip() ip = environ['REMOTE_ADDR'].strip()
cmd="arp -an %s|gawk \'{print $4}\'" % ip cmd="arp -an {}|gawk \'{print $4}\'".format(ip)
mac = subprocess.check_output(cmd, shell=True) mac = subprocess.check_output(cmd, shell=True)
data = [] data = []
data.append("host: %s\n"%environ['HTTP_HOST']) data.append("host: {}\n".format(environ['HTTP_HOST']))
data.append("path: %s\n"%environ['PATH_INFO']) data.append("path: {}\n".format(environ['PATH_INFO']))
data.append("query: %s\n"%environ['QUERY_STRING']) data.append("query: {}\n".format(environ['QUERY_STRING']))
data.append("ip: %s\n"%ip) data.append("ip: {}\n".format(ip))
agent = environ.get('HTTP_USER_AGENT','default_agent') agent = environ.get('HTTP_USER_AGENT','default_agent')
data.append("AGENT: %s\n"%agent) data.append("AGENT: {}\n".format(agent))
logger.debug(data) logger.debug(data)
#print(data) #print(data)
found = False found = False
@ -412,7 +411,7 @@ def application (environ, start_response):
sql = "UPDATE users SET current_ts = ? where ip = ?" sql = "UPDATE users SET current_ts = ? where ip = ?"
c.execute(sql,(ts,ip,)) c.execute(sql,(ts,ip,))
if c.rowcount == 0: if c.rowcount == 0:
logger.debug("failed UPDATE users SET current_ts = %s WHERE ip = %s"%(ts,ip,)) logger.debug("failed UPDATE users SET current_ts = {} WHERE ip = {}".format(ts,ip,))
conn.commit() conn.commit()
ymd=datetime.datetime.today().strftime("%y%m%d-%H%M") ymd=datetime.datetime.today().strftime("%y%m%d-%H%M")
@ -441,8 +440,8 @@ def application (environ, start_response):
# the js link to home page triggers this ajax url # the js link to home page triggers this ajax url
# mark the sign-in conversation completed, return 204 or Success or Success # mark the sign-in conversation completed, return 204 or Success or Success
ANDROID_TRIGGERED = True ANDROID_TRIGGERED = True
#data = ['%s: %s\n' % (key, value) for key, value in sorted(environ.items()) ] #data = ['{}: {}\n'.format(key, value) for key, value in sorted(environ.items()) ]
#logger.debug("need the correct ip:%s"%data) #logger.debug("need the correct ip:{}".format(data))
logger.debug("function: home_selected. Setting flag to return_204") logger.debug("function: home_selected. Setting flag to return_204")
#print("setting flag to return_204") #print("setting flag to return_204")
set_204after(ip,PORTAL_TO) set_204after(ip,PORTAL_TO)
@ -485,7 +484,7 @@ def application (environ, start_response):
environ['PATH_INFO'] == "/gen_204" or\ environ['PATH_INFO'] == "/gen_204" or\
environ['HTTP_HOST'] == "connectivitycheck.gstatic.com": environ['HTTP_HOST'] == "connectivitycheck.gstatic.com":
current_ts, last_ts, send204after = timeout_info(ip) current_ts, last_ts, send204after = timeout_info(ip)
logger.debug("current_ts: %s last_ts: %s send204after: %s"%(current_ts, last_ts, send204after,)) logger.debug("current_ts: {} last_ts: {} send204after: {}".formmat(current_ts, last_ts, send204after,))
if not last_ts or (ts - int(last_ts) > INACTIVITY_TO): if not last_ts or (ts - int(last_ts) > INACTIVITY_TO):
return android(environ, start_response) return android(environ, start_response)
elif is_after204_timeout(ip): elif is_after204_timeout(ip):
@ -504,7 +503,7 @@ def application (environ, start_response):
environ['HTTP_HOST'] == "teredo.ipv6.microsoft.com.nsatc.net": environ['HTTP_HOST'] == "teredo.ipv6.microsoft.com.nsatc.net":
return microsoft(environ, start_response) return microsoft(environ, start_response)
logger.debug("executing the default 302 response. [%s"%data) logger.debug("executing the default 302 response. [{}".format(data))
return put_302(environ,start_response) return put_302(environ,start_response)
# Instantiate the server # Instantiate the server

View file

@ -25,3 +25,4 @@
- { src: "roles/nginx/templates/server.conf", dest: "/etc/nginx/" } - { src: "roles/nginx/templates/server.conf", dest: "/etc/nginx/" }
- { src: "roles/nginx/templates/nginx.conf", dest: "/etc/nginx/" } - { src: "roles/nginx/templates/nginx.conf", dest: "/etc/nginx/" }
- { src: 'roles/nginx/templates/ports.conf', dest: '/etc/{{ apache_service }}/' , mode: '0644' } - { src: 'roles/nginx/templates/ports.conf', dest: '/etc/{{ apache_service }}/' , mode: '0644' }
- { src: 'roles/nginx/templates/uwsgi.unit', dest: '/etc/systemd/system/' , mode: '0644' }