예제 #1
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def api_settings(db):
    '''
    WebUI Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_webui.html').render(
        auth=auth(request),
        web_theme=setting('web_theme').value,
        web_header=setting('web_header').value,
        web_images=setting('web_images').boolvalue,
        web_accounts=setting('web_accounts').boolvalue,
        web_stats=setting('web_stats').intvalue,
        web_pvs=setting('web_pvs_enabled').boolvalue,
        web_image_delay=setting('web_image_delay').value,
        web_account_delay=setting('web_account_delay').value,
        web_stat_delay=setting('web_stat_delay').value,
        web_pvs_delay=setting('web_pvs_delay').value,
        web_stat_max=setting('web_stat_max').intvalue,
        web_image_max=setting('web_image_max').intvalue,
        web_account_max=setting('web_account_max').intvalue,
        web_pvs_max=setting('web_pvs_max').intvalue,
        pvs_host=setting('pvs_host').value,
        pvs_user=setting('pvs_user').value,
        pvs_password=setting('pvs_password').value,
        web_display_settings=setting('web_display_settings').boolvalue
    )
예제 #2
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def user_settings(db):
    '''
    User Management Page
    '''
    s = SettingSession()
    if auth(request) and request.method == 'POST':
        username = request.forms.get('username')
        password = request.forms.get('password')
        action = request.forms.get('action')
        if action == 'Create':
            s.add(User(username, password))
        if action == 'Update':
            user = s.query(User).filter_by(name=username).one()
            user.update(password)
            s.merge(user)
        if action == 'Remove' and username != 'admin':
            user = s.query(User).filter_by(name=username).one()
            s.delete(user)
        s.commit()
    users = s.query(User).all()
    s.close()
    return env.get_template('settings_users.html').render(
        auth=auth(request),
        users=users
    )
예제 #3
0
def api_settings(db):
    '''
    WebUI Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_webui.html').render(
        auth=auth(request),
        web_theme=setting('web_theme').value,
        web_header=setting('web_header').value,
        web_images=setting('web_images').boolvalue,
        web_accounts=setting('web_accounts').boolvalue,
        web_stats=setting('web_stats').intvalue,
        web_pvs=setting('web_pvs_enabled').boolvalue,
        web_image_delay=setting('web_image_delay').value,
        web_account_delay=setting('web_account_delay').value,
        web_stat_delay=setting('web_stat_delay').value,
        web_pvs_delay=setting('web_pvs_delay').value,
        web_stat_max=setting('web_stat_max').intvalue,
        web_image_max=setting('web_image_max').intvalue,
        web_account_max=setting('web_account_max').intvalue,
        web_pvs_max=setting('web_pvs_max').intvalue,
        pvs_host=setting('pvs_host').value,
        pvs_user=setting('pvs_user').value,
        pvs_password=setting('pvs_password').value,
        web_display_settings=setting('web_display_settings').boolvalue)
예제 #4
0
def services_settings(db):
    '''
    Services Status Page 
    '''
    if auth(request) and request.method == 'POST':
        parser = request.forms.get('parser')
        action = request.forms.get('action')
        if action == 'Stop':
            monitor.stop(parser)
        if action == 'Start':
            monitor.start(parser)
        if action == 'Restart':
            monitor.stop(parser)
            monitor.start(parser)
    return env.get_template('settings_services.html').render(
        auth=auth(request), parsers=monitor.parser_status())
예제 #5
0
def api_settings(db):
    '''
    Logging Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_logging.html').render(
        auth=auth(request),
        log_console=setting('log_console').intvalue,
        log_console_level=setting('log_console_level').value,
        log_file=setting('log_file').intvalue,
        log_file_level=setting('log_file_level').value,
        log_file_path=setting('log_file_path').value)
예제 #6
0
def api_settings(db):
    '''
    Server Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_server.html').render(
        auth=auth(request),
        server_host=setting('server_host').value,
        server_port=setting('server_port').value,
        server_ssl=setting('server_ssl').intvalue,
        server_anonymize=setting('server_anonymize').intvalue,
        server_username=setting('server_username').value)
예제 #7
0
def login_page(db):
    '''
    Authentication Screen
    '''
    return env.get_template('login.html').render(
        auth=auth(request), 
        status=monitor.status()
    )
예제 #8
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def api_settings(db):
    '''
    Logging Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_logging.html').render(
        auth=auth(request),
        log_console=setting('log_console').intvalue,
        log_console_level=setting('log_console_level').value,
        log_file=setting('log_file').intvalue,
        log_file_level=setting('log_file_level').value,
        log_file_path=setting('log_file_path').value
    )
예제 #9
0
def api_settings(db):
    '''
    API Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_api.html').render(
        auth=auth(request),
        api_debug=setting('api_debug').intvalue,
        api_port=setting('api_port').value,
        api_host=setting('api_host').value,
        api_app_server=setting('api_app_server').value,
        cookie_key=setting('cookie_key').value,
        database=config.config.get('Database', 'db'))
예제 #10
0
def new_user_page(db):
    '''
    New User Page. 
    '''
    return env.get_template('newuser.html').render(
        auth=auth(request), 
        status=monitor.status()
    )
예제 #11
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def settings_page(db):
    '''
    Settings Page
    '''
    return env.get_template('settings_base.html').render(
        auth=auth(request),
        vinfo=get_version_info()
    )
예제 #12
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def api_settings(db):
    '''
    Server Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_server.html').render(
        auth=auth(request),
        server_host=setting('server_host').value,
        server_port=setting('server_port').value,
        server_ssl=setting('server_ssl').intvalue,
        server_anonymize=setting('server_anonymize').intvalue,
        server_username=setting('server_username').value
    )
예제 #13
0
def start_parser(parser, db):
    '''
    Starts the parser specified. 
    '''
    if auth(request):
        monitor.start(parser)
        return env.get_template('parsers.html').render(
            parsers=monitor.parser_status(),
            auth=auth(request), 
            status=monitor.status()
        )
    else:
        return env.get_template('parsers.html').render(
            error='Must be Authenticated to Start Parsers',
            parsers=monitor.parser_status(),
            auth=auth(request), 
            status=monitor.status()
        )
예제 #14
0
def status_page(db):
    '''
    Parser Status Page. 
    '''
    return env.get_template('parsers.html').render(
        parsers=monitor.parser_status(),
        auth=auth(request), 
        status=monitor.status()
    )
예제 #15
0
파일: post.py 프로젝트: xme/DoFler
def upload_stat(db):
    '''Uploads new statistics to the database.'''
    if auth(request):
        username = request.forms.get('username')
        proto = request.forms.get('proto')
        count = int(request.forms.get('count'))
        if isinstance(username, tuple): sensor = sensor[0]
        if isinstance(proto, tuple): proto = proto[0]
        db.add(Stat(proto, username, count))
예제 #16
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def api_settings(db):
    '''
    API Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_api.html').render(
        auth=auth(request),
        api_debug=setting('api_debug').intvalue,
        api_port=setting('api_port').value,
        api_host=setting('api_host').value,
        api_app_server=setting('api_app_server').value,
        cookie_key=setting('cookie_key').value,
        database=config.config.get('Database', 'db')
    )
예제 #17
0
def upload_stat(db):
    '''Uploads new statistics to the database.'''
    if auth(request):
        username = request.forms.get('username')
        proto = request.forms.get('proto')
        count = int(request.forms.get('count'))
        if isinstance(username, tuple): sensor = sensor[0]
        if isinstance(proto, tuple): proto = proto[0]
        db.add(Stat(proto, username, count))
예제 #18
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def services_settings(db):
    '''
    Services Status Page 
    '''
    if auth(request) and request.method == 'POST':
        parser = request.forms.get('parser')
        action = request.forms.get('action')
        if action == 'Stop':
            monitor.stop(parser)
        if action == 'Start':
            monitor.start(parser)
        if action == 'Restart':
            monitor.stop(parser)
            monitor.start(parser)
    return env.get_template('settings_services.html').render(
        auth=auth(request),
        parsers=monitor.parser_status()
    )
예제 #19
0
def parsers_settings(db):
    '''
    Parser Configuration Settings Page
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    parsers = {}
    for item in monitor.parser_status():
        parsers[item] = {
            'enabled': setting('%s_enabled' % item).boolvalue,
            'command': setting('%s_command' % item).value,
        }
    return env.get_template('settings_parsers.html').render(
        auth=auth(request),
        parsers=parsers,
        autostart=setting('autostart').boolvalue,
        listen_interface=setting('listen_interface').value)
예제 #20
0
def new_user_post(db):
    '''
    New User Handler. 
    '''
    if auth(request):
        db.add(User(
            request.forms.get('username'),
            request.forms.get('password')
        ))
        return eng.get_template('newuser.html').render(
            note='Account Created',
            auth=auth(request), 
            status=monitor.status()
        )
    else:
        return eng.get_template('newuser.html').render(
            error='Must be Logged in to create accounts.',
            auth=auth(request), 
            status=monitor.status()
        )
예제 #21
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def parsers_settings(db):
    '''
    Parser Configuration Settings Page
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    parsers = {}
    for item in monitor.parser_status():
        parsers[item] = {
            'enabled': setting('%s_enabled' % item).boolvalue,
            'command': setting('%s_command' % item).value,
        }
    return env.get_template('settings_parsers.html').render(
        auth=auth(request),
        parsers=parsers,
        autostart=setting('autostart').boolvalue,
        listen_interface=setting('listen_interface').value
    )
예제 #22
0
파일: ui.py 프로젝트: blha303/DoFler
def api_settings(db):
    '''
    WebUI Settings Page 
    '''
    if auth(request) and request.method == 'POST':
        settings = {}
        for item in request.forms:
            settings[item] = request.forms[item]
        update_settings(settings)
    return env.get_template('settings_webui.html').render(
        auth=auth(request),
        web_images=setting('web_images').boolvalue,
        web_accounts=setting('web_accounts').boolvalue,
        web_stats=setting('web_stats').intvalue,
        web_image_delay=setting('web_image_delay').value,
        web_account_delay=setting('web_account_delay').value,
        web_stat_delay=setting('web_stat_delay').value,
        web_stat_max=setting('web_stat_max').intvalue,
        web_image_max=setting('web_image_max').intvalue,
        web_account_max=setting('web_account_max').intvalue,
        web_display_settings=setting('web_display_settings').boolvalue
    )
예제 #23
0
def settings_post(db):
    '''
    Settings Update Handler. 
    '''
    s = SettingSession()
    if auth(request):
        for item in request.forms:
            settingobj = setting(item)
            if item == 'server_password':
                if request.forms['server_password'] != '1234567890':
                    settingobj.value = request.forms[item]
            else:
                settingobj.value = request.forms[item]
            s.merge(settingobj)
        s.commit()
        s.close()
        common.log_to_console()
        common.log_to_file()
        monitor.autostart()
        return get_settings_page(auth(request), note='Settings Updated')
    else:
        return get_settings_page(auth(request),
            error='Must be Authenticated to Change Settings')
예제 #24
0
def user_settings(db):
    '''
    User Management Page
    '''
    s = SettingSession()
    if auth(request) and request.method == 'POST':
        username = request.forms.get('username')
        password = request.forms.get('password')
        action = request.forms.get('action')
        if action == 'Create':
            s.add(User(username, password))
        if action == 'Update':
            user = s.query(User).filter_by(name=username).one()
            user.update(password)
            s.merge(user)
        if action == 'Remove' and username != 'admin':
            user = s.query(User).filter_by(name=username).one()
            s.delete(user)
        s.commit()
    users = s.query(User).all()
    s.close()
    return env.get_template('settings_users.html').render(auth=auth(request),
                                                          users=users)
예제 #25
0
def upload_image(db):
    '''Updates and/or creates a image object into the database.'''
    if auth(request):
        filedata = request.files.file.file.read()
        md5sum = md5hash(filedata)
        try:
            image = db.query(Image).filter_by(md5sum=md5sum).one()
            image.timestamp = int(time.time())
            image.count += 1
            db.merge(image)
        except:
            image = Image(int(time.time()), request.forms.get('filetype'),
                          filedata)
            db.add(image)
예제 #26
0
def services(db):
    '''
    Returns the running status of the services on the dofler sensor. 
    '''
    if auth(request) and request.method == 'POST':
        parser = request.forms.get('parser') or None
        action = request.forms.get('action') or None
        if action == 'Stop':
            monitor.stop(parser)
        if action == 'Start':
            monitor.start(parser)
        if action == 'Restart':
            monitor.stop(parser)
            monitor.start(parser)
    return jsonify(monitor.parser_status())
예제 #27
0
파일: post.py 프로젝트: xme/DoFler
def services(db):
    '''
    Returns the running status of the services on the dofler sensor. 
    '''
    if auth(request) and request.method == 'POST':
        parser = request.forms.get('parser') or None
        action = request.forms.get('action') or None
        if action == 'Stop':
            monitor.stop(parser)
        if action == 'Start':
            monitor.start(parser)
        if action == 'Restart':
            monitor.stop(parser)
            monitor.start(parser)
    return jsonify(monitor.parser_status())
예제 #28
0
파일: post.py 프로젝트: xme/DoFler
def upload_image(db):
    '''Updates and/or creates a image object into the database.'''
    if auth(request):
        filedata = request.files.file.file.read()
        md5sum = md5hash(filedata)
        try:
            image = db.query(Image).filter_by(md5sum=md5sum).one()
            image.timestamp = int(time.time())
            image.count += 1
            db.merge(image)
        except:
            image = Image(int(time.time()), 
                          request.forms.get('filetype'),
                          filedata
            )
            db.add(image)
예제 #29
0
def documentation(db, path=None):
    '''
    Documentation Pages.
    '''
    data = None
    if path:
        try:
            with open('/usr/share/dofler/docs/%s.md' % path) as mdfile:
                data = markdown.markdown(mdfile.read(),
                                         extensions=[
                                             'codehilite',
                                             'extra',
                                         ])
        except:
            pass
    return env.get_template('settings_doc_page.html').render(
        auth=auth(request), doc_content=data)
예제 #30
0
def main_page(db):
    '''
    Main View
    '''
    return env.get_template('main.html').render(
        auth=auth(request), 
        status=monitor.status(),
        web_images=setting('web_images').boolvalue,
        web_accounts=setting('web_accounts').boolvalue,
        web_stats=setting('web_stats').boolvalue,
        web_image_delay=setting('web_image_delay').intvalue,
        web_account_delay=setting('web_account_delay').intvalue,
        web_stat_delay=setting('web_stat_delay').intvalue,
        web_image_max=setting('web_image_max').intvalue,
        web_account_max=setting('web_account_max').intvalue,
        web_stat_max=setting('web_stat_max').intvalue
    )
예제 #31
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def documentation(db, path=None):
    '''
    Documentation Pages.
    '''
    data = None
    if path:
        try:
            with open('/usr/share/dofler/docs/%s.md' % path) as mdfile:
                data = markdown.markdown(mdfile.read(), extensions=[
                    'codehilite',
                    'extra',
                ])
        except:
            pass
    return env.get_template('settings_doc_page.html').render(
        auth=auth(request),
        doc_content=data
    )
예제 #32
0
def login(db):
    '''
    Authentication Page
    '''
    error = None
    logged_in = False
    if request.method == 'POST':
        if auth_login(request):
            response.set_cookie(
                'user',
                request.forms.get('username'),
                secret=setting('cookie_key').value,
            )
            response.add_header('Authentication', 'SUCCESS')
            logged_in = True
        else:
            error = 'Authentication Failed'
    else:
        logged_in = auth(request)
    return env.get_template('settings_login.html').render(auth=logged_in,
                                                          error=error)
예제 #33
0
파일: post.py 프로젝트: TMcKinley/DoFler
def new_account(db):
    '''Generates a new account into the database if it doesnt already exist.'''
    if auth(request):
        username = str(request.forms.get('username')),
        password = str(request.forms.get('password')),
        info = str(request.forms.get('info')),
        proto = str(request.forms.get('proto')),
        parser = str(request.forms.get('parser')),
        if isinstance(username, tuple): username = username[0]
        if isinstance(password, tuple): password = password[0]
        if isinstance(info, tuple): info = info[0]
        if isinstance(proto, tuple): proto = proto[0]
        if isinstance(parser, tuple): parser = parser[0]
        try:
            account = db.query(Account).filter_by(username=username,
                                                 proto=proto,
                                                 password=password,
                                                 info=info).one()
        except:
            account = Account(username, password, info, proto, parser)
            db.add(account)
예제 #34
0
def new_account(db):
    '''Generates a new account into the database if it doesnt already exist.'''
    if auth(request):
        username = str(request.forms.get('username')),
        password = str(request.forms.get('password')),
        info = str(request.forms.get('info')),
        proto = str(request.forms.get('proto')),
        parser = str(request.forms.get('parser')),
        if isinstance(username, tuple): username = username[0]
        if isinstance(password, tuple): password = password[0]
        if isinstance(info, tuple): info = info[0]
        if isinstance(proto, tuple): proto = proto[0]
        if isinstance(parser, tuple): parser = parser[0]
        try:
            account = db.query(Account).filter_by(username=username,
                                                  proto=proto,
                                                  password=password,
                                                  info=info).one()
        except:
            account = Account(username, password, info, proto, parser)
            db.add(account)
예제 #35
0
파일: ui.py 프로젝트: TMcKinley/DoFler
def login(db):
    '''
    Authentication Page
    '''
    error=None
    logged_in=False
    if request.method == 'POST':
        if auth_login(request):
            response.set_cookie('user', 
                request.forms.get('username'), 
                secret=setting('cookie_key').value,
            )
            response.add_header('Authentication', 'SUCCESS')
            logged_in=True
        else:
            error='Authentication Failed'
    else:
        logged_in=auth(request)
    return env.get_template('settings_login.html').render(
        auth=logged_in,
        error=error
    )
예제 #36
0
파일: post.py 프로젝트: xme/DoFler
def push_reset(db):
    '''
    Pushes a reset into the DB to clear out any undesirable data from the UI. 
    '''
    if auth(request):
        db.add(Reset(request.forms.get('type')))
예제 #37
0
def settings_page(db):
    '''
    Settings Page
    '''
    return env.get_template('settings_base.html').render(
        auth=auth(request), vinfo=get_version_info())
예제 #38
0
def settings_page(db):
    '''
    Settings Page
    '''
    return get_settings_page(auth(request))
예제 #39
0
def push_reset(db):
    '''
    Pushes a reset into the DB to clear out any undesirable data from the UI. 
    '''
    if auth(request):
        db.add(Reset(request.forms.get('type')))