Beispiel #1
0
def get_data(schedule_type):
    if schedule_type == 1:
        return request.form.get('data_date_utc', '')
    elif schedule_type == 2:
        return strings.to_json({
            'weeks':
            request.form.get('interval_weeks', None),
            'days':
            request.form.get('interval_days', None),
            'hours':
            request.form.get('interval_hours', None),
            'minutes':
            request.form.get('interval_minutes', None),
            'seconds':
            request.form.get('interval_seconds', None)
        })
    elif schedule_type == 3:
        return strings.to_json({
            'second':
            request.form.get('cron_second', None),
            'minute':
            request.form.get('cron_minute', None),
            'hour':
            request.form.get('cron_hour', None),
            'day':
            request.form.get('cron_day', None),
            'month':
            request.form.get('cron_month', None),
            'day_of_week':
            request.form.get('cron_day_of_week', None),
            'year':
            request.form.get('cron_year', None),
        })
    else:
        return None
Beispiel #2
0
    def fetch(self, raw=False):
        if raw:
            sql_arr = [self._sql]
        else:
            sql_arr = ["select _page.* from (", self._sql, ") _page"]
            if strings.is_not_blank(self._order_by_clause):
                sql_arr.append("order by")
                sql_arr.append(self._order_by_clause)
            if self._fetch_rows >= 0:
                sql_arr.append("limit " + str(self._start) + "," +
                               str(self._fetch_rows))

        try:
            self._context.begin()
            cursor = self._build_cursor_sql(" ".join(sql_arr))
            fetchall = cursor.fetchall()
            logger.debug(" ".join(sql_arr), DAO_LOGGER)
            logger.debug(strings.to_json(self._params), DAO_LOGGER)
            self._context.commit()
            return list(
                map(lambda o: dict(zip([k.lower() for k in cursor.keys()], o)),
                    fetchall))
        except Exception as e:
            self._context.rollback()
            raise e
Beispiel #3
0
def get():
    uid = request.form.get("id")
    if strings.is_not_blank(uid):
        func = get_function(uid)
        if func is not None:
            return strings.to_json(func)
    return "failed"
Beispiel #4
0
def get():
    uid = request.form.get("id")
    if strings.is_not_blank(uid):
        menu = get_menu(uid)
        if menu is not None:
            return strings.to_json(menu)
    return "failed"
Beispiel #5
0
def groups_save():
    dn = request.form.get('dn')
    ret = {'success': False, 'error_msg': None}
    try:
        if strings.is_blank(dn):
            response = models.add_group(
                cn=request.form.get('cn'),
                gid_number=request.form.get('gid'),
            )
        else:
            response = models.modify_group(
                cn=request.form.get('cn'),
                gid_number=request.form.get('gid'),
            )
        if not response:
            ret['error_msg'] = '添加失败,请查询 slapd.server 日志'
        else:
            ret['success'] = True
    except LDAPBindError:
        ret['error_msg'] = '授权错误'
        return ret
    except Exception as e:
        logger.error_traceback(LOGGER_NAME)
        ret['error_msg'] = str(e)
    return strings.to_json(ret, True)
Beispiel #6
0
    def wrapper(*args, **kwargs):
        from raphael.utils.dao.query import DaoQuery
        from collections import Iterable, Sized

        g.params = json.loads(request.form.get("params"))
        get_result = f(*args, **kwargs)

        if isinstance(get_result, DaoQuery):
            page_index = int(request.form.get("page_index"))
            page_size = int(request.form.get("page_size"))
            order_by = request.form.get("order_by")

            if strings.is_not_blank(order_by):
                get_result.order_by(order_by)
            if page_size > 0:
                res = get_result.pagination((page_index - 1) * page_size,
                                            page_size).fetch()
            else:
                res = get_result.fetch()
            # call batch
            if hasattr(g, 'table_batch'):
                res = g.table_batch(res)
            result = {"res": res, "count": get_result.count()}
        elif isinstance(get_result, (Iterable, Sized)):
            result = {"res": list(get_result), "count": len(get_result)}
        else:
            raise ValueError("get_result is not in reason.")
        return strings.to_json(result)
Beispiel #7
0
def profile():
    user = webutils.curr_user()
    if not user or user.get('loginid') == 'guest':
        return {'msg': "failed", 'user': '******'}
    user = copy.deepcopy(user)
    user.pop('password', None)
    user.pop('salt', None)
    return render_template('um/profile.html', **{'msg': 'success', 'user': strings.to_json(user, True)})
Beispiel #8
0
def get():
    uid = request.form.get("id")
    if strings.is_not_blank(uid):
        user = um.get_user_byid(uid)
        if user is not None:
            user.pop('password', None)
            user.pop('salt', None)
            return strings.to_json(user)
    return "failed"
Beispiel #9
0
def users_reset_passwrod(cn):
    ret = {'success': False, 'new_password': None}
    try:
        new_password = strings.random_str(12)
        models.reset_password(cn, new_password)
        ret['success'] = True
        ret['new_password'] = new_password
    except:
        logger.error_traceback(LOGGER_NAME)
    return strings.to_json(ret, True)
Beispiel #10
0
    def execute(self, sql, **params):
        from sqlalchemy import text

        try:
            self.begin()
            self.session.connection().execute(text(sql), **params)
            logger.debug(str(sql), DAO_LOGGER)
            logger.debug(strings.to_json(params), DAO_LOGGER)
            self.commit()
        except Exception as e:
            self.rollback()
            raise e
Beispiel #11
0
 def first(self):
     try:
         self._context.begin()
         cursor = self._build_cursor()
         first = cursor.first()
         logger.debug('FIRST ' + str(self._sql), DAO_LOGGER)
         logger.debug(strings.to_json(self._params), DAO_LOGGER)
         keys = cursor.keys()
         self._context.commit()
         return None if first is None else dict(
             zip([o.lower() for o in keys], first))
     except Exception as e:
         self._context.rollback()
         raise e
Beispiel #12
0
 def count(self):
     try:
         self._context.begin()
         count = 0
         sql_arr = ["select count(*) from (", self._sql, ") _count"]
         result = self._build_cursor_sql("".join(sql_arr)).fetchall()
         logger.debug(''.join(sql_arr), DAO_LOGGER)
         logger.debug(strings.to_json(self._params), DAO_LOGGER)
         if len(result) > 0:
             count = result[0][0]
         self._context.commit()
         return count
     except Exception as e:
         self._context.rollback()
         raise e
Beispiel #13
0
def setting_save():
    result = {
        'success': False,
        'message': None,
        'newsettings': None,
    }
    attr_map = {
        'openldap.shadow.min': 'shadow_min',
        'openldap.shadow.max': 'shadow_max',
        'openldap.shadow.inactive': 'shadow_inactive',
        'openldap.shadow.warning': 'shadow_warning',
    }
    other_attrs = {}
    for s in json.loads(request.form.get('settings')):
        setting_models.CmSettingCache.save_obj({
            'id': s['id'],
            'name': s['name'],
            'value': s['value'],
        })
        if s['name'].find('openldap.shadow.') >= 0:
            other_attrs[attr_map[s['name']]] = s['value']

    # change user shadow attributes
    if len(other_attrs) > 0:
        try:
            for user_cn in models.list_users():
                models.modify_user(user_cn, **other_attrs)
        except:
            result['success'] = False
            result['message'] = '更改用户属性时错误'
            return strings.to_json(result, True)

    result['success'] = True
    result['newsettings'] = setting_models.find_settings(
        namelikeleft='openldap.').fetch()
    return strings.to_json(result, True)
Beispiel #14
0
def users_save():
    dn = request.form.get('dn')
    ret = {'success': False, 'error_msg': None, 'new_password': None}
    try:
        if strings.is_blank(dn):
            response = models.add_user(
                cn=request.form.get('cn'),
                sn=request.form.get('sn'),
                uid_number=request.form.get('uid'),
                gid_number=request.form.get('gid'),
                gecos=request.form.get('gecos'),
                mail=request.form.get('mail'),
                display_name=request.form.get('displayName'),
            )
            if not response:
                ret['error_msg'] = '添加失败,请查询 slapd.server 日志'
            else:
                # new password
                new_password = strings.random_str(12)
                models.reset_password(request.form.get('cn'), new_password)
                ret['success'] = True
                ret['new_password'] = new_password
        else:
            response = models.modify_user(
                cn=request.form.get('cn'),
                sn=request.form.get('sn'),
                uid_number=request.form.get('uid'),
                gid_number=request.form.get('gid'),
                gecos=request.form.get('gecos'),
                mail=request.form.get('mail'),
                display_name=request.form.get('displayName'),
            )
            if not response:
                ret['error_msg'] = '添加失败,请查询 slapd.server 日志'
            else:
                ret['success'] = True
    except LDAPBindError:
        ret['error_msg'] = '授权错误'
        return ret
    except Exception as e:
        logger.error_traceback(LOGGER_NAME)
        ret['error_msg'] = str(e)
    return strings.to_json(ret, True)
Beispiel #15
0
def hosts_import():
    ret = {
        'success_count': 0,
        'fail_count': 0,
        'error_items': [],
    }

    hosts_text = request.form.get('hosts')
    for host_item in hosts_text.split('\n'):
        if strings.is_blank(host_item):
            continue
        parts = host_item.split()
        if len(parts) <= 1:
            ret['error_items'].append(host_item)
            ret['fail_count'] += 1
            continue
        response = models.add_host(parts[1], parts[2:], parts[0])
        if response:
            ret['success_count'] += 1
        else:
            ret['error_items'].append(host_item)
            ret['fail_count'] += 1

    return strings.to_json(ret, True)
Beispiel #16
0
def services_get(cn):
    return strings.to_json(models.get_service(cn), True)
Beispiel #17
0
def command_groups_get(cn):
    return strings.to_json(models.get_command_group(cn), True)
Beispiel #18
0
def host_groups_get(cn):
    return strings.to_json(models.get_host_group(cn), True)
Beispiel #19
0
def get():
    schedule = models.get_schedule(request.form.get('id', None))
    return strings.to_json(schedule) if schedule else 'failed'
Beispiel #20
0
def get(oid):
    o = get_setting(oid)
    return strings.to_json(o)