Ejemplo n.º 1
0
def get(p):
    id = tools.get('id')
    # delete
    es.delete(p['host'], 'core_data', 'datasource', id)
    es.flush(p['host'], 'core_data')

    return tools.redirect(request.referrer)
Ejemplo n.º 2
0
def get(p):
    # get list of roles
    query = "site_id:{}".format(p['site']['id'])
    option = "size=10000&sort=name:asc"
    p['role_list'] = es.list(p['host'], 'core_nav', 'role', query, option)

    # selected role
    role_id = p['nav'][-1]
    p['role'] = es.get(p['host'], 'core_nav', 'role', role_id)
    if not p['role']:
        p['role'] = p['role_list'][0]

    # get permission
    permission_id = "{}_{}".format(p['role']['id'], p['navigation']['id'])
    p['permission'] = es.get(p['host'], 'core_nav', 'permission', permission_id)

    if request.method == "POST":
        doc = { "operations": [x for x in tools.get('operations', []) if x] }

        if not p['permission']:
            # create permission
            es.create(p['host'], 'core_nav', 'permission', permission_id, doc)
        else:
            # edit permission
            es.update(p['host'], 'core_nav', 'permission', permission_id, doc)
        es.flush(p['host'], 'core_nav')

        return tools.redirect(request.referrer)


    return render_template("post/permission/default.html", p=p)
Ejemplo n.º 3
0
def set_conf(host, index, name, value):
    config = {
        'name': name,
        'value': value
    }
    es.update(host, index, "config", name, config)
    es.flush(host, index)
Ejemplo n.º 4
0
def get(p):
    # load navigation
    navigation_id = p['nav'][-1]
    navigation = es.get(p['host'], 'core_nav', 'navigation', navigation_id)
    if not navigation:
        return tools.alert(
            'not valid navigation id - {}'.format(navigation_id))

    if not tools.get('site_id'): return tools.alert("site id missing")
    if not tools.get('module_id'): return tools.alert("module id missing")

    # edit role
    doc = {
        'site_id': tools.get('site_id'),
        'parent_id': tools.get('parent_id'),
        'module_id': tools.get('module_id'),
        'order_key': int(tools.get('order_key')),
        'is_displayed': tools.get('is_displayed'),
        'name': tools.get('name'),
        'display_name': tools.get('display_name'),
        'url': tools.get('url'),
        'new_window': tools.get('new_window'),
        'description': tools.get('description')
    }
    es.update(p['host'], 'core_nav', 'navigation', navigation_id, doc)
    es.flush(p['host'], 'core_nav')

    return tools.redirect(request.referrer)
Ejemplo n.º 5
0
def get(p):
    host = p['c']['host']; index = p['c']['index'];

    # init workflow
    wf = tools.get("wf", 'comment_edit')
    p['workflow'] = workflow.init(wf, host, index)

    # load comment
    post_id = p['nav'][-1]
    p['post'] = es.get(host, index, 'post', post_id)
    if not p['post']:
        return tools.alert('not valid post id - {}'.format(post_id))

    # comment_id
    comment_id = tools.get("id")
    p['comment'] = next((x for x in p['post']['comment'] if x['id'] == comment_id), None)
    if not p['comment']:
        return tools.alert('not valid comment_id - {}'.format(comment_id))

    # field map
    fields = es.list(host, index, 'field')
    p['field_map'] = {}
    for field in fields:
        p['field_map'][field['name']] = field['id']

    # update comment
    p['comment']['updated'] = es.now()
    p['comment']['updated_by'] = p['login']
    p['comment']['comment'] = tools.get("comment")

    es.update(host, index, 'post', post_id, p['post'])
    es.flush(host, index)

    return tools.redirect(request.referrer)
Ejemplo n.º 6
0
def trigger_scheduled_tasks():
    # today
    dayofmonth = datetime.today().day
    dayofweek = datetime.today().weekday()
    hour = datetime.today().hour
    minute = datetime.today().minute

    # get list of tasks that should run under this host
    query = """
        (dayofmonth:{} OR dayofmonth:None) AND
        (dayofweek:{} OR dayofweek:None) AND
        (hour:{} OR hour:None) AND
        (minute:{} OR minute:None)
    """.format(dayofmonth, dayofweek, hour, minute)
    ret = es.list(HOST, 'core_task', 'schedule', query)

    for schedule in ret:
        # check if instance exists
        query = """
            task_id:{} AND
            created:[now-1m TO now+1m]
        """.format(schedule['task_id'])
        instance = es.list(HOST, 'core_task', 'instance', query)
        if len(instance) > 0:
            continue  # task already triggered
        # create instance
        es.create(
            HOST, 'core_task', 'instance', '', {
                "task_id": schedule['task_id'],
                "status": "WAITING",
                "login": "******",
                "created": es.now()
            })
        es.flush(HOST, 'core_task')
Ejemplo n.º 7
0
def get(p):
    host = p['c']['host']
    index = p['c']['index']

    # load comment
    post_id = p['nav'][-1]
    p['post'] = es.get(host, index, 'post', post_id)
    if not p['post']:
        return tools.alert('not valid post id - {}'.format(post_id))

    # comment_id
    comment_id = tools.get("id")
    p['comment'] = next(
        (x for x in p['post']['comment'] if x['id'] == comment_id), {})
    if not p['comment']:
        return tools.alert('not valid comment_id - {}'.format(comment_id))

    # init workflow
    wf = tools.get('wf', 'comment_delete')
    p['workflow'] = workflow.init(wf, host, index)

    # remove comment
    p['post']['comment'].remove(p['comment'])

    es.update(host, index, 'post', post_id, p['post'])
    es.flush(host, index)

    return tools.redirect(request.referrer)
Ejemplo n.º 8
0
def get(p):
    host = p['c']['host']
    index = p['c']['index']

    # load notification
    notification_id = p['nav'][-1]
    p['notification'] = es.get(host, index, 'notification', notification_id)
    if not p['notification']:
        return tools.alert(
            'not valid notification id - {}'.format(notification_id))

    # save notification
    if request.method == "POST":
        doc = {
            'header': tools.get('header'),
            'message': tools.get('message'),
            'recipients': tools.get('recipients'),
            'condition': tools.get('condition'),
            'workflow': tools.get('workflow')
        }
        es.update(host, index, 'notification', notification_id, doc)
        es.flush(host, index)

        return tools.redirect("{}/notification/edit/{}".format(
            p['url'], notification_id))

    return render_template("post/notification/edit.html", p=p)
Ejemplo n.º 9
0
def get(p):
    host = p['c']['host'] ; index = p['c']['index'] ;

    # get list of mappings
    mapping = es.mapping(host, index, 'post')
    properties = mapping[index]['mappings']['post']['properties']

    # get all field list
    p['field_list'] = []
    for prop in properties.keys():
        field = es.get(host, index, 'field', prop)
        if not field:
            # create field
            field = {
                "type": properties[prop].get('type'),
                "name": prop,
                "order_key": '10000'
            }
            es.create(host, index, 'field', prop, field)
            es.flush(host, index)
            field['id'] = prop

        # add to field list
        p['field_list'].append(field)

    # sort by order key
    p['field_list'] = sorted(p['field_list'],
        key=lambda field: int(field['order_key'] if field['order_key'] else 10000))

    return render_template("post/field/default.html", p=p)
Ejemplo n.º 10
0
 def log(self, status, message):
     es.create(self.host, 'core_task', 'log', '', {
         "instance_id": self.instance['id'],
         "action": self.action['name'],
         "status": status,
         "message": message,
         "created": es.now()
     })
     es.flush(self.host, 'core_task')
Ejemplo n.º 11
0
def get(p):
    # load schedule
    schedule_id = p['nav'][-1]
    schedule = es.get(p['host'], 'core_task', 'schedule', schedule_id)
    if not schedule:
        return tools.alert('schedule not found - {}'.format(schedule_id))

    es.delete(p['host'], 'core_task', 'schedule', schedule_id)
    es.flush(p['host'], 'core_task')

    return tools.redirect(request.referrer)
Ejemplo n.º 12
0
def get(p):

    es.create(p['host'], 'core_task', 'task', '', {
        'navigation_id': p['navigation']['id'],
        'name': tools.get('name'),
        'runat': tools.get('runat', 'anywhere'),
        'description': tools.get('description')
    })
    es.flush(p['host'], 'core_task')

    return tools.redirect(request.referrer)
Ejemplo n.º 13
0
def get(p):
    # load task
    task_id = p['nav'][-1]
    p['task'] = es.get(p['host'], 'core_task', 'task', task_id)
    if not p['task']:
        return tools.alert('task not found - {}'.format(task_id))

    es.delete(p['host'], 'core_task', 'task', task_id)
    es.flush(p['host'], 'core_task')

    return tools.redirect(request.referrer)
Ejemplo n.º 14
0
def get(p):
    # load rule
    rev_proxy_id = p['nav'][-1]
    rev_proxy = es.get(p['host'], 'core_proxy', 'rev_proxy', rev_proxy_id)
    if not rev_proxy:
        return tools.alert('not valid rev_proxy id - {}'.format(rev_proxy_id))

    # delete
    es.delete(p['host'], 'core_proxy', 'rev_proxy', rev_proxy_id)
    es.flush(p['host'], 'core_proxy')

    return tools.redirect(request.referrer)
Ejemplo n.º 15
0
def get(p):
    # load role
    role_id = p['nav'][-1]
    p['role'] = es.get(p['host'], 'core_nav', 'role', role_id)
    if not p['role']:
        return tools.alert('not valid role id - {}'.format(role_id))

    # delete
    es.delete(p['host'], 'core_nav', 'role', role_id)
    es.flush(p['host'], 'core_nav')

    return tools.redirect(request.referrer)
Ejemplo n.º 16
0
def get(p):
    # url shall exist
    if not tools.get('url'): return tools.alert("url is missing")

    # create new reverse proxy rule
    doc = {
        'url': tools.get('url')
    }
    es.create(p['host'], 'core_proxy', 'public', '', doc)
    es.flush(p['host'], 'core_proxy')

    return tools.redirect(request.referrer)
Ejemplo n.º 17
0
def get(p):
    # Load Action
    action_id = p['nav'][-1]
    p['action'] = es.get(p['host'], 'core_task', 'action', action_id)
    if not p['action']:
        return tools.alert('not valid action id - {}'.format(action_id))

    # delete
    es.delete(p['host'], 'core_task', 'action', p['action']['id'])
    es.flush(p['host'], 'core_task')

    return tools.redirect(request.referrer)
Ejemplo n.º 18
0
def get(p):

    # create new site
    site = {
        'order_key': tools.get('order_key'),
        'name': tools.get('name'),
        'display_name': tools.get('display_name'),
        'description': tools.get('description')
    }
    es.create(p['host'], 'core_nav', 'site', '', site)
    es.flush(p['host'], 'core_nav')

    return tools.redirect(request.referrer)
Ejemplo n.º 19
0
def get(p):
    # create new login module
    doc = {
        "type": tools.get('type'),
        "name": tools.get('name'),
        "description": tools.get('description'),
        "priority": tools.get('priority'),
        "configuration": tools.get('configuration')
    }
    es.create(p['host'], 'core_nav', 'login_module', '', doc)
    es.flush(p['host'], 'core_nav')

    return tools.redirect(request.referrer)
Ejemplo n.º 20
0
def get(p):
    # load public url
    public_id = p['nav'][-1]
    public = es.get(p['host'], 'core_proxy', 'public', public_id)
    if not public:
        return tools.alert('not valid public url id - {}'.format(public_id))

    # edit role
    doc = {'url': tools.get('url')}
    es.update(p['host'], 'core_proxy', 'public', public_id, doc)
    es.flush(p['host'], 'core_proxy')

    return tools.redirect(request.referrer)
Ejemplo n.º 21
0
def get(p):
    # load login module
    login_module_id = p['nav'][-1]
    login_module = es.get(p['host'], 'core_nav', 'login_module',
                          login_module_id)
    if not login_module:
        return tools.alert(
            'not valid login module id - {}'.format(login_module_id))

    # deletelogin module
    es.delete(p['host'], 'core_nav', 'login_module', login_module_id)
    es.flush(p['host'], 'core_nav')

    return tools.redirect(request.referrer)
Ejemplo n.º 22
0
def get(p):
    host = p['c']['host']
    index = p['c']['index']

    # load workflow
    workflow_id = p['nav'][-1]
    p['workflow'] = es.get(host, index, 'workflow', workflow_id)
    if not p['workflow']:
        return tools.alert('not valid workflow id - {}'.format(workflow_id))

    # delete
    es.delete(host, index, 'workflow', workflow_id)
    es.flush(host, index)

    return tools.redirect(request.referrer)
Ejemplo n.º 23
0
def get(p):
    host = p['c']['host']
    index = p['c']['index']

    # load notification
    notification_id = p['nav'][-1]
    p['notification'] = es.get(host, index, 'notification', notification_id)
    if not p['notification']:
        return tools.alert(
            'not valid notification id - {}'.format(notification_id))

    # delete notification
    es.delete(host, index, 'notification', notification_id)
    es.flush(host, index)

    return tools.redirect(request.referrer)
Ejemplo n.º 24
0
def get(p):
    # name shall exist
    if not tools.get('inc_url'): return tools.alert("incoming url is missing")
    if not tools.get('out_url'): return tools.alert("outgoing url is missing")

    # create new reverse proxy rule
    doc = {
        'inc_url': tools.get('inc_url'),
        'out_url': tools.get('out_url'),
        'auth_method': tools.get('auth_method'),
        'header': tools.get('header')
    }
    es.create(p['host'], 'core_proxy', 'rev_proxy', '', doc)
    es.flush(p['host'], 'core_proxy')

    return tools.redirect(request.referrer)
Ejemplo n.º 25
0
def get(p):
    # check if site_id is passed
    p['site_id'] = tools.get('site_id')
    if not p['site_id']: return tools.alert('site id is missing')

    if request.method == "POST":
        # save custom navigation
        p['site'] = {'navigation': tools.get('navigation')}
        es.update(p['host'], 'core_nav', 'site', p['site_id'], p['site'])
        es.flush(p['host'], 'core_nav')

    # load site
    p['site'] = es.get(p['host'], 'core_nav', 'site', p['site_id'])
    if not p['site']: return tools.alert('site id is not valid')

    return render_template("admin/customize/default.html", p=p)
Ejemplo n.º 26
0
def get(p):
    site_id = p['nav'][-1]

    # root site can't be deleted
    if site_id == "0":
        return tools.alert("Root site can't be deleted")

    # check if site id is valid
    site = es.get(p['host'], 'core_nav', 'site', site_id)
    if not site:
        return tools.alert("not valid site id: {}".format(site_id))

    es.delete(p['host'], 'core_nav', 'site', site_id)
    es.flush(p['host'], 'core_nav')

    return tools.redirect(request.referrer)
Ejemplo n.º 27
0
def get(p):
    if not tools.get('name'): return tools.alert('name is missing')

    # save to configuration
    es.create(
        p['host'], 'core_data', 'datasource', '', {
            'navigation_id': p['navigation']['id'],
            'type': tools.get('type'),
            'name': tools.get('name'),
            'description': tools.get('description'),
            'connection': tools.get('connection'),
            'query': tools.get('query')
        })
    es.flush(p['host'], 'core_data')

    return tools.redirect(request.referrer)
Ejemplo n.º 28
0
def get(p):
    # load role
    role_id = p['nav'][-1]
    p['role'] = es.get(p['host'], 'core_nav', 'role', role_id)
    if not p['role']:
        return tools.alert('not valid role id - {}'.format(role_id))

    # edit role
    doc = {}
    if tools.get('users'): doc['users'] = tools.get('users')
    if tools.get('name'): doc['name'] = tools.get('name')
    if tools.get('description'): doc['description'] = tools.get('description')

    es.update(p['host'], 'core_nav', 'role', role_id, doc)
    es.flush(p['host'], 'core_nav')

    return tools.redirect(request.referrer)
Ejemplo n.º 29
0
def get(p):
    host = p['c']['host']
    index = p['c']['index']

    doc = {
        "name": tools.get("name"),
        "description": tools.get("description"),
        "status": tools.get("status"),
        "condition": tools.get("condition"),
        "validation": tools.get('validation'),
        "postaction": tools.get('postaction'),
        "screen": tools.get('screen')
    }
    es.create(host, index, 'workflow', '', doc)
    es.flush(host, index)

    return tools.redirect(request.referrer)
Ejemplo n.º 30
0
def post(p, host, index):
    # save field
    doc = {
        "is_filter": tools.get("is_filter"),
        "filter_field": tools.get("filter_field"),
        "handler": tools.get("handler"),
        "name": tools.get("name"),
        "visible": tools.get("visible"),
        "order_key": int(tools.get("order_key")),
        "list_tpl": tools.get("list_tpl"),
        "view_tpl": tools.get("view_tpl"),
        "edit_tpl": tools.get("edit_tpl")
    }

    es.update(host, index, 'field', p['field']['id'], doc)
    es.flush(host, index)
    return tools.redirect(request.referrer)