Esempio n. 1
0
def ls_domain():
    data = {'monitors':[],'members':[]}
    for i in Domain.objects(monitors__in=[g.user]):
        data['monitors'].append(i.get_json())
    for i in Domain.objects(members__in=[g.user]):
        data['members'].append(i.get_json())
    return trueReturn(data)
Esempio n. 2
0
def edit_domain():
    d = Domain.get_by_id(g.data['id'])
    if g.user in d.monitors:
        d.modify_members(g.data['members'],g.data['monitors'])
        return trueReturn()
    else:
        return falseReturn(msg='您没有此域的管理权限')
Esempio n. 3
0
def rename_domain():
    d = Domain.get_by_id(g.data['id'])
    if g.user in d.monitors:
        d.rename(g.data['name'])
        return trueReturn()
    else:
        return falseReturn(msg='您没有此域的更名权限')
Esempio n. 4
0
def remove_domain():
    d = Domain.get_by_id(g.data['id'])
    if g.user in d.monitors:
        d.delete()
        return trueReturn()
    else:
        return falseReturn(msg='您没有此域的删除权限')
Esempio n. 5
0
def export_sign():
    return trueReturn({
        'all_signs': [{
            'user':
            j,
            'signs': [i.get_base_info() for i in Sign.objects(user=j)]
        } for j in User.objects()]
    })
Esempio n. 6
0
def alloc_user():
    for i in g.data['roles']:
        if not g.user.restrict_permission(Role.get_by_id(i).permission):
            return falseReturn(msg='您无法赋予他人权限不小于自己的角色')
        if not g.user.restrict_functions(Role.get_by_id(i).allow_functions):
            return falseReturn(msg='您无法赋予他人权能不在自己范围内的角色')
    u = User.get_by_id(g.data['id'])
    u.change_role(g.data['roles'])
    return trueReturn()
Esempio n. 7
0
def import_user():
    if 'file' not in request.files:
        return falseReturn(None, '无文件')
    f = request.files['file']
    if f.filename == '':
        return falseReturn(None, '未选择上传')
    else:
        sheet(f)
        return trueReturn()
Esempio n. 8
0
def do_sign():  # shift改变排班的week只是记签到目的week,不作为判断是否允许签到的依据
    wk = int(
        (datetime.datetime.now() - Admin.objects().first().server_starttime
         ).total_seconds()) % (86400 * 7)
    r = Routine.objects(user=g.user).first()
    ima = datetime.datetime.now().timestamp() + 28800
    m = []

    if r.signtime != r.shift:  # 有调班:
        if int((ima + 259200) % 604800 / 86400) == int(r.shift / 5) and int(
                ima % 86400) in time_table[r.shift % 5]:
            if not Sign.objects(user=g.user, week=r.shift_week):
                if Sign.create(user=g.user, typ='s', week=r.shift_week):
                    r = r.recover_shift()
                    return trueReturn()
                else:
                    r = r.recover_shift()
                    m.append('【调班】本时间段内签过到')
            else:
                r = r.recover_shift()
                m.append('【调班】本周已签过到')
        else:
            m.append('【调班】不在签到时段内')

    # print(int((ima + 259200) % 604800 / 86400) == int(r.signtime / 5))
    # print(ima % 86400 in time_table[r.signtime % 5])
    # print(ima % 86400)
    # print(time_table[r.signtime % 5])

    if int((ima + 259200) % 604800 / 86400) == int(r.signtime / 5) and int(
            ima % 86400) in time_table[r.signtime % 5]:
        if not Sign.objects(user=g.user, week=wk):
            if Sign.create(user=g.user, typ='n', week=wk):
                return trueReturn()
            else:
                m.append('【正常班次】本时间段内签过到')
                return falseReturn(msg='\n'.join(m))
        else:
            m.append('【正常班次】本周已签过到')
            return falseReturn(msg='\n'.join(m))
    else:
        m.append('【正常班次】不在签到时段内')
        return falseReturn(msg='\n'.join(m))
Esempio n. 9
0
def remove_role():
    if g.user.restrict_permission(Role.get_by_id(g.data['id']).permission):
        if g.user.restrict_functions(
                Role.get_by_id(g.data['id']).allow_functions):
            Role.get_by_id(g.data['id']).delete()
            return trueReturn()
        else:
            return falseReturn(msg='您无法删除权能比自己多的角色')
    else:
        return falseReturn(msg='您无法删除权限不小于自己的角色')
Esempio n. 10
0
def rename_role():
    if g.user.restrict_permission(Role.get_by_id(g.data['id']).permission):
        if g.user.restrict_functions(
                Role.get_by_id(g.data['id']).allow_functions):
            Role.get_by_id(g.data['id']).rename(g.data['name'])
            return trueReturn()
        else:
            return falseReturn(msg='您无法为权能比自己多的角色更名')
    else:
        return falseReturn(msg='您无法为权限不小于自己的角色更名')
Esempio n. 11
0
def signin():
    name = g.data.get("username", "").strip()
    password = g.data.get("password", "")
    user = Admin.objects(user_id=name).first()
    if not user or not user.valid_password(password):
        return falseReturn(None, "用户名或密码有误")
    return trueReturn({
        'user': user.get_base_info(),
        'token': generate_jwt(user)
    })
Esempio n. 12
0
def edit_role():
    if g.user.restrict_permission(g.data['permission']):
        if g.user.restrict_functions(g.data['functions']):
            Role.get_by_id(g.data['id']).modify_permission(
                g.data['permission'])
            Role.get_by_id(g.data['id']).modify_functions(g.data['functions'])
            return trueReturn()
        else:
            return falseReturn(msg='您无法为角色分配自己没有的权能')
    else:
        return falseReturn(msg='您无法为角色分配不小于自身的权限')
Esempio n. 13
0
def initialize_instance():
    Admin.insert_admin(g.data['user'], g.data['password'])
    Domain(name='默认部员域').save()
    Role.new_role('成员', 0, [])
    Role.new_role('部长', 64, [
        'new_user', 'remove_user', 'rename_user', 'alloc_user', 'ls_user',
        'import_from_sheet'
    ])
    Role.new_role('总监', 4096, ['*'])
    with open('isinit.flag', 'w') as f:
        pass
    return trueReturn(msg="初始化完成")
Esempio n. 14
0
def remove_user():
    u = User.get_by_id(g.data['id'])
    if not g.user.restrict_permission(u.max_permission()):
        return falseReturn(msg='您无法删除权限不小于自己的用户')
    u.delete()
    return trueReturn()
Esempio n. 15
0
def new_role():
    if g.user.restrict_permission(g.data['permission']):
        Role.new_role(g.data['name'], g.data['permission'])
        return trueReturn()
    else:
        return falseReturn(msg='您无法新建权限不小于自己的角色')
Esempio n. 16
0
def ls_role():
    return trueReturn({"roles": [i.get_base_info() for i in Role.objects()]})
Esempio n. 17
0
def rename_user():
    u = User.get_by_id(g.data['id'])
    if not g.user.restrict_permission(u.max_permission()):
        return falseReturn(msg='您无法重命名权限不小于自己的用户')
    u.rename(g.data['name'])
    return trueReturn()
Esempio n. 18
0
def ls_user():
    return trueReturn({'users': [i.get_base_info() for i in User.objects()]})
Esempio n. 19
0
def ls_sign():
    return trueReturn(
        {'signs': [i.get_base_info() for i in Sign.objects(user=g.user)]})
Esempio n. 20
0
def new_event():
    Event.new_event(g.user, g.data['name'], g.data['frequency'],
                    g.data['offset'], g.data['start'], g.data['end'],
                    g.data['timenode'])
    return trueReturn()
Esempio n. 21
0
def edit_domain():
    d = Domain.get_by_id(g.data['id'])
    d.modify_members(g.data['members'], g.data['monitors'])
    return trueReturn()
Esempio n. 22
0
def rename_domain():
    d = Domain.get_by_id(g.data['id'])
    d.rename(g.data['name'])
    return trueReturn()
Esempio n. 23
0
def remove_domain():
    d = Domain.get_by_id(g.data['id'])
    d.delete()
    return trueReturn()
Esempio n. 24
0
def new_domain():
    Domain.new_domain(g.data['name'], None)
    return trueReturn()
Esempio n. 25
0
def change_routine():  # 永久调班
    if int(g.data['signtime']) not in range(0, 35):
        return falseReturn(msg='值班时间段设置不合法')
    u = User.get_by_id(g.data['user'])
    Routine.objects(user=u).first().change_signtime(g.data['signtime'])
    return trueReturn()
Esempio n. 26
0
def edit_event():
    e = Event.get_by_id(g.data['id'])
    e.edit_event(g.user, g.data['name'], g.data['frequency'], g.data['offset'],
                 g.data['start'], g.data['end'], g.data['timenode'])
    return trueReturn()
Esempio n. 27
0
def new_user():
    User.get_or_create(g.data['name'], g.data['user_id'], g.data['password'])
    return trueReturn()
Esempio n. 28
0
def ls_domain():
    return trueReturn({"domains": [i.get_json() for i in Domain.objects()]})
Esempio n. 29
0
def remove_event():  # 临时调班
    e = Event.get_by_id(g.data['id'])
    e.delete()
    return trueReturn()
Esempio n. 30
0
def set_starttime():  # 设置系统启动时间
    d = datetime.datetime.strptime(g.data['time'], '%Y/%m/%d %H:%M:%S')
    Admin.objects().first().change_starttime(d)
    return trueReturn()