Exemple #1
0
def update_status():
    data = dict((k, v[0]) for k, v in dict(request.form).items())
    job = db.list('ops_jobs', fields_job, data['id'])
    res = {}

    # 获取申请人信息
    users = db.list('users', fields_user)
    for user in users:
        if job['apply_persion'] == user['name']:
            # 获取值班人的邮箱
            email = user['email']

    if data['status'] == '1':
        data['deal_persion'] = session.get('name')
        result = '申请已通过,请执行!'

        # 值班人执行操作后发邮件给工单申请人
        thr = Thread(target=myMail.myMail,
                     args=(duty_email, duty_passwd, email, result))
        thr.start()
    else:
        data['deal_time'] = time.strftime(ISOTIMEFORMAT, time.localtime())

        if data['status'] == '2':
            result = '工单处理正确,{}'.format(data['deal_desc'])
        else:
            result = '工单失败,失败原因:{}'.format(data['deal_desc'])
        thr = Thread(target=myMail.myMail,
                     args=(duty_email, duty_passwd, email, result))
        thr.start()

    conditions = ["%s='%s'" % (k, v) for k, v in data.items()]
    db.update('ops_jobs', conditions, data['id'])
    return json.dumps({'code': 0, 'result': 'execute completed!'})
Exemple #2
0
def userlist():
    role = session.get('role')
    if role == 'admin':
	users = db.list('users',fields_user)
	return render_template("/user/userlist.html",users = users,role = role)
    else:
        user = db.list('users',fields_user,session.get('id'))
        return render_template("/user/userself.html",user = user,role = role)
Exemple #3
0
def server():
    if not session.get('name'):
        return render_template('login.html')
    role = session.get('role')
    servers = db.list('server', fields_server)
    for i in servers:
        cabinet = db.list('cabinet', fields_cabinet, i['cabinet_id'])
        i['cabinet_id'] = cabinet['name']

    return render_template("serverlist.html", servers=servers, role=role)
Exemple #4
0
def userlist():
    if not session.get('name'):
        return render_template('login.html')
    role = session.get('role')
    if role == 'admin':
        users = db.list('users', fields_user)
        return render_template("userlist.html", users=users, role=role)
    else:
        user = db.list('users', fields_user, session.get('id'))
        return render_template("userself.html", user=user, role=role)
Exemple #5
0
def cabinet():
    if not session.get('name'):
        return render_template('login.html')
    role = session.get('role')
    cabinets = db.list('cabinet', fields_cabinet)
    for i in cabinets:
        idc = db.list('idc', fields_idc, i['idc_id'])
        i['idc_id'] = idc['name']

    return render_template("cabinetlist.html", cabinets=cabinets, role=role)
Exemple #6
0
def send_mail():
    job_id = request.form.get('id')
    job = db.list('ops_jobs', fields_job, job_id)
    user = db.list('users', fields_user, session.get('id'))
    email, passwd = user['email'], base64.b64decode(user['email_password'])
    result = '申请时间: {},工单名: {} 已处理,请确认'.format(job['apply_date'],
                                               job['apply_type'])
    thr = Thread(target=myMail.myMail,
                 args=(email, passwd, duty_email, result))
    thr.start()

    return json.dumps({'result': 'send mail success!'})
Exemple #7
0
def dutyself():
    today = date.weekday(date.today())  # 今天是星期几
    id = duty(today)

    user = db.list('users', fields_user, id)
    role = session.get('role')
    return render_template("/duty/dutyself.html", user=user, role=role)
Exemple #8
0
def jobadd():
    name = session.get('name')
    id = session.get('id')
    if request.method == 'GET':
        return render_template('/job/jobadd.html',
                               info=session,
                               role=session.get('role'))
    else:
        data = dict((k, v[0]) for k, v in dict(request.form).items())
        data['apply_persion'] = name

        if not data['apply_desc']:
            return json.dumps({
                'code': 1,
                'errmsg': 'job description can not be null'
            })
        conditions = ["%s='%s'" % (k, v) for k, v in data.items()]
        db.add('ops_jobs', conditions)

        # 获取申请人email地址
        user = db.list('users', fields_user, id)
        # 从用户列表获取邮箱账号和密码
        email, passwd = user['email'], base64.b64decode(user['email_password'])
        # 发送邮件(申请人发邮件给当天值班人)
        # myMail.myMail(email,passwd,duty_email,data['apply_desc'])
        # 异步发送
        thr = Thread(target=myMail.myMail,
                     args=(email, passwd, duty_email, data['apply_desc']))
        thr.start()

        return json.dumps({'code': 0, 'result': 'apply job success'})
Exemple #9
0
def useradd():
    if not session.get('name'):
        return redirect('/login')
    if request.method == 'GET':
        return render_template('add.html', role=session.get('role'))
    if request.method == 'POST':
        l = []
        data = dict((k, v[0]) for k, v in dict(request.form).items())
        data['password'] = md5(request.form.get('password') + salt).hexdigest()

        for i in db.list('users', fields_user):
            l.append(i['name'])
        if not data['name']:
            return json.dumps({'code': 1, 'errmsg': 'name can not be null'})
        elif not data['name_cn']:
            return json.dumps({
                'code': 1,
                'errmsg': 'chinese name can not be null'
            })
        elif not data['password']:
            return json.dumps({
                'code': 1,
                'errmsg': 'password can not be null'
            })
        elif data['name'] not in l:
            conditions = ["%s='%s'" % (k, v) for k, v in data.items()]
            db.add('users', conditions)
            return json.dumps({'code': 0, 'result': 'add user success'})
        return json.dumps({'code': 1, 'errmsg': 'username is exist'})
Exemple #10
0
def userself():
    if not session.get('name'):
        return render_template('login.html')
    role = session.get('role')
    id = session.get('id')
    user = db.list('users', fields_user, id)
    return render_template("userself.html", user=user, role=role)
Exemple #11
0
def update_msg():
    id = request.args.get('id')
    user = db.list('users',fields_user,id)
    if session.get('role') == 'admin':
	return json.dumps({'code':0,'result':user})
    else:
	return json.dumps({'code':2,'result':user})
Exemple #12
0
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        name = request.form.get('name')
        password = md5(request.form.get('password') + salt).hexdigest()
        print password

        d = {}
        for i in db.list('users', fields_user):
            d[i['name']] = [i['password'], i['role'], i['id'], i['status']]
        if not name or not password:
            errmsg = 'name or password not be null'
            return json.dumps({'code': '1', 'errmsg': errmsg})
        elif d[name][3] != 0:
            return json.dumps({'code': '1', 'errmsg': 'user is locked'})

        elif name in d and d[name][0] == password:
            session['name'] = name
            session['role'] = d[name][1]
            session['id'] = d[name][2]
            return json.dumps({'code': '0', 'result': 'login success'})
        else:
            errmsg = 'name or password wrong'
            return json.dumps({'code': '1', 'errmsg': errmsg})
Exemple #13
0
def modpwd():
    data = dict(request.form)
    if 'password' in data.keys():
	if not data['password'][0] or not data['newpassword'][0] or not data['renewpassword'][0]:
	    errmsg = 'password can not be null'
	    return json.dumps({'code':'1','errmsg':errmsg})
    else:
	if not data['newpassword'][0] or not data['renewpassword'][0]:
	    errmsg = 'password can not be null'
	    return json.dumps({'code':'1','errmsg':errmsg})

    try:
	condition = [ "%s='%s'" %  ('password',md5(v[0]+salt).hexdigest()) for k,v in data.items() if k == 'newpassword']
	id = session.get('id')
	if session.get('role') == 'admin':
	    db.update('users',condition,data['id'][0])
	    return json.dumps({'code':'0','result':'modify completed!'})
	else:
	    if md5(data['password'][0]+salt).hexdigest() == db.list('users',fields_user,id)['password']:
		db.update('users',condition,data['id'][0])
		return json.dumps({'code':'0','result':'modify completed!'})
	    return json.dumps({'code':'1','errmsg':'wrong old password'})
    except:
	errmsg = "modify failed" 
	return json.dumps({'code':'1','errmsg':errmsg})
Exemple #14
0
 def execute(self, message):
   if message.command == spec.ttypes.Command.INSERT:
     return db.insert(message.title, message.content)
   elif message.command == spec.ttypes.Command.GET:
     return db.get(message.id)
   elif message.command == spec.ttypes.Command.LIST:
     return db.list(message.count)
Exemple #15
0
def joblist():
    role = session.get('role')
    jobs = db.list('ops_jobs', fields_job)
    list_jobs = []
    for job in jobs:
        if job['status'] == 0 or job['status'] == 1:
            list_jobs.append(job)
    return render_template("/job/joblist.html", jobs=list_jobs, role=role)
Exemple #16
0
def worklist():
    role = session.get('role')
    works = db.list('work', fields_work)
    list_works = []
    for work in works:
        if int(work['work_status']) == 0:
            list_works.append(work)
    return render_template("/work/worklist.html", works=list_works, role=role)
Exemple #17
0
def update_msg():
    id = request.args.get('id')
    user = db.list('users', fields_user, id)
    user['email_password'] = base64.b64decode(user['email_password'])
    if session.get('role') == 'admin':
        return json.dumps({'code': 0, 'result': user})
    else:
        return json.dumps({'code': 2, 'result': user})
Exemple #18
0
def main():
    action = None
    data = ""
    db = None
    directory = None
    name = None

    if len(sys.argv) < 3:
        _help()
        sys.exit()

    for arg in sys.argv[1:]:
        if arg in ("-h", "--help"):
            _help()
            sys.exit()
    directory, action = sys.argv[1:3]
    action = action.lower()

    if action in ("append", "contains", "delete", "get", "set"):
        if len(sys.argv) < 4:
            print "Missing entry name."
            _help()
            sys.exit()
        name = list(csv.reader(StringIO.StringIO(sys.argv[3])))[0]

        if action in ("append", "set") and len(sys.argv) > 4:
            data = sys.argv[4]
    elif not action in ("clean", "init", "list", "size"):
        print "Invalid action."
        _help()
        sys.exit()
    db = DB(directory)
    db.__enter__()

    if action == "append":
        db.append(name, data)
    elif action == "clean":
        db.clean()
    elif action == "contains":
        print name in db
    elif action == "delete":
        del db[name]
    elif action == "get":
        sys.stdout.write(db[name])
        sys.stdout.flush()
    elif action == "list":
        for n in db.list():
            if not isinstance(n, list) and not isinstance(n, tuple):
                n = [n]
            csv.writer(sys.stdout).writerow(n)
            sys.stdout.flush()
    elif action == "set":
        db[name] = data
    elif action == "size":
        print len(db)
    # otherwise action == "init"
    db.__exit__()
Exemple #19
0
def workhistory():
    role = session.get('role')
    works = db.list('work', fields_work)
    history_works = []
    for work in works:
        if int(work['work_status']) != 0:
            history_works.append(work)
    return render_template("/work/workhistory.html",
                           works=history_works,
                           role=role)
Exemple #20
0
def jobhistory():
    role = session.get('role')
    jobs = db.list('ops_jobs', fields_job)
    history_jobs = []
    for job in jobs:
        if job['status'] == 2 or job['status'] == 3:
            history_jobs.append(job)
    return render_template("/job/jobhistory.html",
                           jobs=history_jobs,
                           role=role)
Exemple #21
0
def job_status():
    id = request.args.get('id')
    job = db.list('ops_jobs', fields_job, id)
    #    return json.dumps({'code':0,'result1':apply_desc,'result2':status})
    result1 = job['status']
    result2 = job['apply_desc']
    result3 = job['deal_desc']
    return json.dumps({
        'code': 0,
        'result1': result1,
        'result2': result2,
        'result3': result3
    })
Exemple #22
0
def idcadd():
    if request.method == 'GET':
	return render_template('/idc/idcadd.html',info = session,role = session.get('role'))
    if request.method == 'POST':
	data = dict((k,v[0]) for k,v in dict(request.form).items())
	l = []

	for i in db.list('idc',fields_idc):
	    l.append(i['name'])
	if not data['name']:
	    return json.dumps({'code':1,'errmsg':'name can not be null'})
	elif data['name'] not in l:
	    conditions = [ "%s='%s'" %  (k,v) for k,v in data.items()]
	    db.add('idc',conditions)
	    return json.dumps({'code':0,'result':'add idc success'})
	return json.dumps({'code':1,'errmsg':'idc name is exist'})
Exemple #23
0
def duty(day):  # 查看星期几的值班人的编号
    duty_dict = {}  # 带索引的值班人员字典
    duty_week = {}  # k: 星期几 ,v: 为list 值班人 ,v[0][1] 表示第二周的星期一
    duty_list = []  # 所有值班人员列表
    users = db.list('users', fields_user)
    for user in users:
        if user['role'] == 'admin' and user['status'] == 0:
            duty_list.append(user['id'])
    duty_list *= 5
    duty_dict = {k: v for k, v in enumerate(duty_list)}
    for k, v in duty_dict.items():
        duty_week.setdefault(k, [])
        duty_week[k % 5].append(v)

    week_num = (int(time.strftime('%W'))) % (
        int(len(duty_list)) / 5)  # 第几个星期 , 'int(len(duty_list))/5'周重置一次
    return duty_week[day][week_num]
Exemple #24
0
def dutylist():
    every_week = []  # 每周值班人汇总
    role = session.get('role')
    for i in range(5):
        data = db.list('users', fields_user, duty(i))
        if i == 0:
            data['week'] = '星期一'
            data['id'] = i
        elif i == 1:
            data['week'] = '星期二'
            data['id'] = i
        elif i == 2:
            data['week'] = '星期三'
            data['id'] = i
        elif i == 3:
            data['week'] = '星期四'
            data['id'] = i
        else:
            data['week'] = '星期五'
            data['id'] = i
        every_week.append(data)

    return render_template("/duty/dutylist.html", users=every_week, role=role)
Exemple #25
0
	def __str__(self):
		list = map(lambda el: "<a href='/%s'>%s</a>" % (el[0], el[0]), db.list())
		return "<br/>".join(list)
Exemple #26
0
def idc():
    role = session.get('role')
    idcs = db.list('idc',fields_idc)
    return render_template("/idc/idclist.html",idcs = idcs,role = role)
Exemple #27
0
    elif not action in ("clean", "init", "list", "size"):
        print "Invalid action."
        _help()
        sys.exit()
    db = DB(directory)
    db.__enter__()

    if action == "append":
        db.append(name, data)
    elif action == "clean":
        db.clean()
    elif action == "contains":
        print name in db
    elif action == "delete":
        del db[name]
    elif action == "get":
        sys.stdout.write(db[name])
        sys.stdout.flush()
    elif action == "list":
        for n in db.list():
            if not isinstance(n, list) and not isinstance(n, tuple):
                n = [n]
            csv.writer(sys.stdout).writerow(n)
            sys.stdout.flush()
    elif action == "set":
        db[name] = data
    elif action == "size":
        print len(db)
    # otherwise action == "init"
    db.__exit__()
Exemple #28
0
def idc_msg():
    idcs = db.list('idc',fields_idc)
    return json.dumps({'result':idcs}) 
Exemple #29
0
import base64
import json
import db
import time

app.config.from_object(Table)
fields_job = app.config.get('FIELDS_OPS_JOBS')
fields_user = app.config.get('FIELDS_USER')
ISOTIMEFORMAT = '%Y-%m-%d %X'
''' 
{'0':'未处理','1':'处理中','2':'完成','3':'失败'}
'''

# 获取值班人邮件地址和密码
today = date.weekday(date.today())
duty_email = db.list('users', fields_user, duty(today))['email']
duty_passwd = base64.b64decode(
    db.list('users', fields_user, duty(today))['email_password'])


@app.route('/joblist/')
@login_request.login_request
def joblist():
    role = session.get('role')
    jobs = db.list('ops_jobs', fields_job)
    list_jobs = []
    for job in jobs:
        if job['status'] == 0 or job['status'] == 1:
            list_jobs.append(job)
    return render_template("/job/joblist.html", jobs=list_jobs, role=role)
Exemple #30
0
def idc_update_msg():
    id = request.args.get('id')
    idc = db.list('idc',fields_idc,id)
    return json.dumps({'code':0,'result':idc})
Exemple #31
0
def userself():
    role = session.get('role')
    user = db.list('users',fields_user,session.get('id'))
    return render_template("/user/userself.html",user = user,role = role)
Exemple #32
0
def server_update_msg():
    id = request.args.get('id')
    server = db.list('server', fields_server, id)
    return json.dumps({'code': 0, 'result': server})