Beispiel #1
0
def load_capture_settings(req,appid=None):

    companyName = 'Untangle'

    oemName = get_settings_item("/usr/share/untangle/conf/oem.js","oemName")
    if (oemName != None):
        companyName = oemName

    brandco = get_app_settings_item('branding-manager','companyName')
    if (brandco != None):
        companyName = brandco

    if (appid == None):
        captureSettings = get_app_settings('captive-portal')
    else:
        captureSettings = get_appid_settings(long(appid))

    # add the company name to the app settings dictionary
    captureSettings['companyName'] = companyName

    # add some headers to prevent caching any of our stuff
    req.headers_out.add("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0")
    req.headers_out.add("Pragma", "no-cache")
    req.headers_out.add("Expires", "Sat, 1 Jan 2000 00:00:00 GMT");

    return(captureSettings)
Beispiel #2
0
def load_capture_settings(req, appid=None):

    companyName = 'Untangle'

    oemName = get_settings_item("/usr/share/untangle/conf/oem.js", "oemName")
    if (oemName != None):
        companyName = oemName

    brandco = get_app_settings_item('branding-manager', 'companyName')
    if (brandco != None):
        companyName = brandco

    if (appid == None):
        captureSettings = get_app_settings('captive-portal')
    else:
        captureSettings = get_appid_settings(long(appid))

    # add the company name to the app settings dictionary
    captureSettings['companyName'] = companyName

    # add some headers to prevent caching any of our stuff
    req.headers_out.add(
        "Cache-Control",
        "no-store, no-cache, must-revalidate, post-check=0, pre-check=0")
    req.headers_out.add("Pragma", "no-cache")
    req.headers_out.add("Expires", "Sat, 1 Jan 2000 00:00:00 GMT")

    return (captureSettings)
Beispiel #3
0
def get_company_name():
    company = 'Untangle'

    oemName = get_settings_item("/usr/share/untangle/conf/oem.js","oemName")
    if oemName != None:
        company = oemName

    brandco = get_app_settings_item('branding-manager','companyName')
    if (brandco != None):
        company = brandco

    if not type(company) is str:
        company = company.encode("utf-8")

    return company
Beispiel #4
0
def get_company_name():
    company = 'Untangle'

    oemName = get_settings_item("@PREFIX@/usr/share/untangle/conf/oem.js","oemName")
    if oemName != None:
        company = oemName

    brandco = get_app_settings_item('branding-manager','companyName')
    if (brandco != None):
        company = brandco

    if not type(company) is str:
        company = company.encode("utf-8")

    return company
Beispiel #5
0
def load_capture_settings(req, appid=None):

    captureSettings = None

    # start with our company name
    companyName = 'Untangle'

    # if there is an OEM name configured we use that instead of our company name
    oemName = get_settings_item("/usr/share/untangle/conf/oem.js", "oemName")
    if (oemName != None):
        companyName = oemName

    # if there is a company name in the branding manager it wins over everything else
    brandco = get_app_settings_item('branding-manager', 'companyName')
    if (brandco != None):
        companyName = brandco

    try:
        if (appid == None):
            captureSettings = get_app_settings('captive-portal')
        else:
            captureSettings = get_appid_settings(int(appid))
    except Exception as e:
        req.log_error("handler.py: Exception loading settings: %s" % str(e))

    if (captureSettings == None):
        req.log_error(
            "handler.py: Unable to load capture settings for appid: %s" %
            str(appid))
        return None
    if (captureSettings.get('pageType') == None):
        req.log_error("handler.py: Missing required setting: pageType")
        return None

    # add the company name to the app settings dictionary
    captureSettings['companyName'] = companyName

    # add some headers to prevent caching any of our stuff
    req.headers_out.add(
        "Cache-Control",
        "no-store, no-cache, must-revalidate, post-check=0, pre-check=0")
    req.headers_out.add("Pragma", "no-cache")
    req.headers_out.add("Expires", "Mon, 10 Jan 2000 00:00:00 GMT")
    req.headers_out.add("Connection", "close")

    return (captureSettings)
Beispiel #6
0
def load_capture_settings(req,appid=None):

    captureSettings = None

    # start with our company name
    companyName = 'Untangle'

    # if there is an OEM name configured we use that instead of our company name
    oemName = get_settings_item("/usr/share/untangle/conf/oem.js","oemName")
    if (oemName != None):
        companyName = oemName

    # if there is a company name in the branding manager it wins over everything else
    brandco = get_app_settings_item('branding-manager','companyName')
    if (brandco != None):
        companyName = brandco

    try:
        if (appid == None):
            captureSettings = get_app_settings('captive-portal')
        else:
            captureSettings = get_appid_settings(int(appid))
    except Exception as e:
        req.log_error("handler.py: Exception loading settings: %s" % str(e))

    if (captureSettings == None):
        req.log_error("handler.py: Unable to load capture settings for appid: %s" % str(appid))
        return None
    if (captureSettings.get('pageType') == None):
        req.log_error("handler.py: Missing required setting: pageType")
        return None

    # add the company name to the app settings dictionary
    captureSettings['companyName'] = companyName

    # add some headers to prevent caching any of our stuff
    req.headers_out.add("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0")
    req.headers_out.add("Pragma", "no-cache")
    req.headers_out.add("Expires", "Mon, 10 Jan 2000 00:00:00 GMT")
    req.headers_out.add("Connection", "close")

    return(captureSettings)
Beispiel #7
0
def _reports_valid_login(req, realm, username, password, log=True):
    users = get_app_settings_item('reports', 'reportsUsers')
    if users == None:
        return False
    if users['list'] == None:
        return False
    for user in users['list']:
        if user['emailAddress'] != username:
            continue

        pw_hash_shadow = user.get('passwordHashShadow')
        if pw_hash_shadow:
            if pw_hash_shadow == crypt.crypt(password, pw_hash_shadow):
                if log:
                    uvm_login.log_login(req, username, True, None)
                return True
            else:
                if log:
                    uvm_login.log_login(req, username, False, 'P')
                return False
        else:
            pw_hash_base64 = user['passwordHashBase64']
            pw_hash = base64.b64decode(pw_hash_base64)
            raw_pw = pw_hash[0:len(pw_hash) - 8]
            salt = pw_hash[len(pw_hash) - 8:]
            if raw_pw == md5.new(password + salt).digest():
                if log:
                    uvm_login.log_login(req, username, True, None)
                return True
            else:
                if log:
                    uvm_login.log_login(req, username, False, 'P')
                return False
    if log:
        uvm_login.log_login(req, username, False, 'U')
    return False
Beispiel #8
0
def _reports_valid_login(req, realm, username, password, log=True):
    users = get_app_settings_item('reports','reportsUsers')
    if users == None:
        return False;
    if users['list'] == None:
        return False;
    for user in users['list']:
        if user['emailAddress'] != username:
            continue;
        pw_hash_base64 = user['passwordHashBase64']
        pw_hash = base64.b64decode(pw_hash_base64)
        raw_pw = pw_hash[0:len(pw_hash) - 8]
        salt = pw_hash[len(pw_hash) - 8:]
        if raw_pw == md5.new(password + salt).digest():
            if log:
                uvm_login.log_login(req, username, False, True, None)
            return True
        else:
            if log:
                uvm_login.log_login(req, username, False, False, 'P')
            return False
    if log:
        uvm_login.log_login(req, username, False, False, 'U')
    return False
Beispiel #9
0
def _write_login_form(req, title, host, error_msg):
    login_url = cgi.escape(req.unparsed_uri)
    req.content_type = "text/html; charset=utf-8"
    req.send_http_header()

    if error_msg == None:
        error_msg = ''

    server_str = cgi.escape(_("Server:"))
    username_str = cgi.escape(_("Username:"******"Password:"******"Login"))

    if not type(title) is str:
        title = cgi.escape(title).encode("utf-8")
    if not type(host) is str:
        host = cgi.escape(host).encode("utf-8")

    try:
        default_username = get_uvm_settings_item('admin', 'defaultUsername')
        if default_username == None:
            default_username = "******"
        else:
            default_username = str(default_username)
    except:
        default_username = ""

    focus_field_id = "password"
    if default_username == "":
        focus_field_id = "username"

    banner_msg = get_app_settings_item('branding-manager', 'bannerMessage')
    if banner_msg != None and banner_msg != "":
        banner_msg = banner_msg.replace("\n", "<br/>")
        banner_msg = "<p>" + banner_msg.encode('utf-8') + "</p>"
    else:
        banner_msg = ""

    html = """\
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, width=device-width">
<meta name="description" content="loginPage">
<title>%s</title>
<script type="text/javascript">if (top.location!=location) top.location.href=document.location.href;</script>
<style type="text/css">
/* <![CDATA[ */
@import url(/images/base.css);
/* ]]> */
</style>
</head>
<body>

<header>
    <img src="/images/BrandingLogo.png" style="max-width: 150px; max-height: 140px;">
</header>

<div class="form-login">
    <form method="post" action="%s">
        <h2>%s</h2>
        <p class="server">%s</p>
        <div class="banner">%s</div>
        <p class="error">%s</p>
        <input id="fragment" type="hidden"   name="fragment" value=""/>
        <input id="username" type="text"     name="username" value="%s" placeholder="%s"/>
        <input id="password" type="password" name="password" placeholder="%s"/>
        <button type="submit">%s</button>
    </form>
</div>

<script type="text/javascript">document.getElementById('%s').focus();</script>
<script type="text/javascript">document.getElementById('fragment').value=window.location.hash;</script>

</body>
</html>""" % (title, login_url, title, host, banner_msg, error_msg,
              default_username, username_str, password_str, login_str,
              focus_field_id)

    req.write(html)
Beispiel #10
0
location = args[0]
base = args[1]
name = args[2]

option_to_lower = False
default_value = None

for opt in opts:
     k, v = opt
     if k == '-l' or k == '--lower':
         option_to_lower = True
     elif k == '-d' or k == '--default':
          default_value = str(v)

if location == "uvm":
    setting = get_uvm_settings_item(base, name)
elif location == "app":
    setting = get_app_settings_item(base, name)
else:
    print "usage: %s [uvm|app] [basename|app] settings_name" % sys.argv[0]
    sys.exit(1)

if setting == None:
    setting = default_value

if option_to_lower:
    setting  = str(setting).lower();

print setting

Beispiel #11
0
location = args[0]
base = args[1]
name = args[2]

option_to_lower = False
default_value = None

for opt in opts:
     k, v = opt
     if k == '-l' or k == '--lower':
         option_to_lower = True
     elif k == '-d' or k == '--default':
          default_value = str(v)

if location == "uvm":
    setting = get_uvm_settings_item(base, name)
elif location == "app":
    setting = get_app_settings_item(base, name)
else:
    print("usage: %s [uvm|app] [basename|app] settings_name" % sys.argv[0])
    sys.exit(1)

if setting == None:
    setting = default_value

if option_to_lower:
    setting  = str(setting).lower();

print(setting)

Beispiel #12
0
def _write_login_form(req, title, host, error_msg):
    login_url = cgi.escape(req.unparsed_uri)
    req.content_type = "text/html; charset=utf-8"
    req.send_http_header()

    if error_msg == None:
        error_msg = ''

    server_str = cgi.escape(_("Server:"))
    username_str = cgi.escape(_("Username:"******"Password:"******"Login"))

    if not type(title) is str:
        title = cgi.escape(title).encode("utf-8")
    if not type(host) is str:
        host = cgi.escape(host).encode("utf-8")

    try:
        default_username = get_uvm_settings_item('admin','defaultUsername')
        if default_username == None:
            default_username = "******"
        else:
            default_username = str(default_username)
    except:
        default_username = ""

    focus_field_id = "password"
    if default_username == "":
        focus_field_id = "username"

    banner_msg = get_app_settings_item('branding-manager','bannerMessage')
    if banner_msg != None and banner_msg != "":
        banner_msg = banner_msg.replace("\n", "<br/>")
        banner_msg = "<p>" + banner_msg.encode('utf-8') + "</p>"
    else:
        banner_msg = ""

    html = """\
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, width=device-width">
<meta name="description" content="loginPage">
<title>%s</title>
<script type="text/javascript">if (top.location!=location) top.location.href=document.location.href;</script>
<style type="text/css">
/* <![CDATA[ */
@import url(/images/base.css);
/* ]]> */
</style>
</head>
<body>

<header>
    <img src="/images/BrandingLogo.png" style="max-width: 150px; max-height: 140px;">
</header>

<div class="form-login">
    <form method="post" action="%s">
        <h2>%s</h2>
        <p class="server">%s</p>
        <div class="banner">%s</div>
        <p class="error">%s</p>
        <input id="fragment" type="hidden"   name="fragment" value=""/>
        <input id="username" type="text"     name="username" value="%s" placeholder="%s"/>
        <input id="password" type="password" name="password" placeholder="%s"/>
        <button type="submit">%s</button>
    </form>
</div>

<script type="text/javascript">document.getElementById('%s').focus();</script>
<script type="text/javascript">document.getElementById('fragment').value=window.location.hash;</script>

</body>
</html>""" % (title, login_url, title, host, banner_msg, error_msg, default_username, username_str, password_str, login_str, focus_field_id)

    req.write(html)