Пример #1
0
def executemodifyuser(request):
    getData = request.POST.get('getData', {})
    username = request.session.get('username')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            getDatatojson = json.loads(getData)
            modifyalluser = thrmodifyalluser(getDatatojson, username)
            if modifyalluser:
                if '' in getDatatojson[0]:
                    getDatatojson[0].pop('')
                if '0' in getDatatojson[0]:
                    getDatatojson[0].pop('0')
                attributesldap = list(getDatatojson[0].keys())
                columns = []
                for c in range(0, len(attributesldap)):
                    columns.append({
                        'field': attributesldap[c],
                        'title': attributesldap[c]
                    })
            result = {
                'isSuccess': True,
                "message": modifyalluser,
                'columns': columns
            }
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #2
0
def modifyuser(request):
    field = request.POST.get('field', None)
    row = request.POST.get('row', None)
    oldValue = request.POST.get('oldValue', None)
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'changelw')
        if permess['isSuccess']:
            rowjson = json.loads(row)
            if field == 'sAMAccountName':
                sAMAccountName = oldValue
            else:
                sAMAccountName = rowjson['sAMAccountName']
            sAMAccountName_repeace = repeace(sAMAccountName)
            with ldap3RESTARTABLE as conn:
                conn.search(
                    search_base=ladp3search_base,
                    search_filter='(&(sAMAccountName=' +
                    sAMAccountName_repeace +
                    ')(&(objectCategory=person)(objectClass=user)))',
                )
                response = conn.response[0]
                dn = response.get('dn', '')
                if dn:
                    if field == 'cn':
                        cn = "CN=" + rowjson['cn']
                        modify_dn = conn.modify_dn(dn, cn)
                    else:
                        attributesVaule = rowjson.get(field, None)
                        if attributesVaule:
                            attributesVaule = [attributesVaule]
                        else:
                            attributesVaule = []
                        modify_dn = conn.modify(dn=dn,
                                                changes={
                                                    field: [(MODIFY_REPLACE,
                                                             attributesVaule)]
                                                })
                    if modify_dn:
                        result = {
                            'isSuccess':
                            True,
                            "message":
                            str(field) + '的属性值' + str(oldValue) + '修改为' +
                            rowjson.get(field, '')
                        }
                    else:
                        result = {
                            'isSuccess': False,
                            "message": str(field) + '的属性修改失败'
                        }
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result).encode("UTF-8"))
    return response
Пример #3
0
def setRenameObject(request):
    distinguishedName = request.POST.get('distinguishedName')
    cn = request.POST.get('cn')
    sn = request.POST.get('sn')
    givenName = request.POST.get('givenName')
    displayName = request.POST.get('displayName')
    userPrincipalName = request.POST.get('userPrincipalName')
    sAMAccountName = request.POST.get('sAMAccountName')
    objectClass = request.POST.get('objectClass')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            objectClass = objectClass.split(',')
            result = set_rename_object(distinguishedName, cn, sn, givenName,
                                       displayName, userPrincipalName,
                                       sAMAccountName, objectClass)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #4
0
def resetUserPassword(request):
    sAMAccountName = request.POST.get('sAMAccountName', None)
    distinguishedName = request.POST.get('distinguishedName', None)
    newpassword = request.POST.get('newpassword')
    pwdLastSet = request.POST.get('pwdLastSet')
    unlock = request.POST.get('unlock')
    ip = request.POST.get('ip', None)
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if pwdLastSet == 'true':
                pwdLastSet = True
            else:
                pwdLastSet = None
            if unlock == 'true':
                unlock = True
            else:
                unlock = None
            result = resetPassword(newpassword,
                                   distinguishedName=distinguishedName,
                                   sAMAccountName=sAMAccountName,
                                   pwdLastSet=pwdLastSet,
                                   unlock=unlock,
                                   ip=ip)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #5
0
def setAccidentallyDeleted(request):
    distinguishedName = request.POST.get('distinguishedName', None)
    sAMAccountName = request.POST.get('sAMAccountName', None)
    prevent = request.POST.get('prevent', 'true')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if prevent == 'true':
                result = check_accidentally_deleted(
                    sAMAccountName=sAMAccountName,
                    distinguishedName=distinguishedName)
            else:
                result = uncheck_accidentally_deleted(
                    sAMAccountName=sAMAccountName,
                    distinguishedName=distinguishedName)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #6
0
def addComputer(request):
    distinguishedName = request.POST.get('add_computer_distinguishedName')
    cn = request.POST.get('add_computer_cn')
    displayName = request.POST.get('add_computer_displayName')
    description = request.POST.get('add_computer_description')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            attributes = {}
            if displayName:
                attributes.update({'displayName': displayName})
            if description:
                attributes.update({'description': description})
            result = newComputer(distinguishedName,
                                 cn,
                                 userAccountControl=4128,
                                 attributes=attributes)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #7
0
def upmesserro(request):
    username = request.session.get('username')
    permess = Userperm(username, 'operate')
    if permess['isSuccess']:
        try:
            post = request.POST
            texid = post.get('texid')
            title = post.get('titel')
            tab = post.get('tab1')
            name = post.get('markup')
            userper = post.get('userper')
            affect = post.get('affect')
            inpendtimeid = post.get('inpendtimeid')
            remessage=upsaveerr(title, userper,affect,inpendtimeid, tab,name, username,texid)
            if remessage==():
                result = {'isSuccess': True, "message": '保存成功'}
            else:
                result = {'isSuccess': False, "message": '保存失败'}
        except Exception as e:
            result = {'isSuccess': False, "message": str(e)}
    else:
        result = {'isSuccess': False, "message": '权限不足'}
    insert_log(username, request, str(result['isSuccess']), str(result), '新建文档')
    response = HttpResponse()
    response['Content-Type'] = "application/json"
    response.write(json.dumps(result, default=str).encode("UTF-8"))
    return response
Пример #8
0
def delObject(request):
    dn = request.POST.get('dn')
    controls = request.POST.get('controls')
    checkboxtext = request.POST.get('checkboxtext')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if controls == 'true':
                if checkboxtext == '删除下面所有账户或对象':
                    controls = [('1.2.840.113556.1.4.805', False, None)]
                    result = delete_object(dn, controls)
                else:
                    result = {
                        'isSuccess': False,
                        "message": '请输入"删除下面所有账户或对象"'
                    }
            else:
                controls = None
                result = delete_object(dn, controls)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #9
0
def delprojects(request):
    username = request.session.get('username')
    user = request.POST.get("user")
    id = request.POST.get("id")
    if username == user:
        try:
            delvalue = onedeltable(id)
            if delvalue == ():
                result = {'isSuccess': True, "message": '删除成功'}
            else:
                result = {'isSuccess': False, "message": '删除失败'}
        except Exception as e:
            result = {'isSuccess': False, "message": str(e)}
    else:
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            try:

                delvalue = onedeltable(id)
                if delvalue == ():
                    result = {'isSuccess': True, "message": '删除成功'}
                else:
                    result = {'isSuccess': False, "message": '删除失败'}
            except Exception as e:
                result = {'isSuccess': False, "message": str(e)}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    insert_log(username, request, str(result['isSuccess']), str(result), '删除文档')
    response = HttpResponse()
    response['Content-Type'] = "application/json"
    response.write(json.dumps(result, default=str).encode("UTF-8"))
    return response
Пример #10
0
def addContact(request):
    distinguishedName = request.POST.get('add_contact_distinguishedName')
    cn = request.POST.get('add_contact_cn')
    sn = request.POST.get('add_contact_sn')
    givenName = request.POST.get('add_contact_givenName')
    displayName = request.POST.get('add_contact_displayName')
    description = request.POST.get('add_contact_description')
    mail = request.POST.get('add_contact_mail')
    name = request.POST.get('add_contact_name')
    smtpvalue = request.POST.get('add_contact_smtpvalue')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            result = newContact(distinguishedName,
                                cn,
                                sn=sn,
                                givenName=givenName,
                                displayName=displayName,
                                description=description,
                                mail=mail,
                                name=name,
                                smtpvalue=smtpvalue,
                                attributes={})
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #11
0
def restartuwsgi(request):
    try:
        username = request.session.get('username')
        if username == returnadminusernamevalue:
            try:
                import uwsgi
                uwsgi.reload()
                insert_log(username, request, 'True', str('restartuwsgi'),
                           '重启 uwsgi服务 成功')
                result = {'isSuccess': True, "message": '重启 uwsgi服务 成功'}
            except Exception as e:
                insert_log(username, request, 'False', str('restartuwsgi'),
                           '重启 uwsgi服务 失败' + str(e))
                result = {
                    'isSuccess': False,
                    "message": '重启 uwsgi服务 失败' + str(e)
                }
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #12
0
def addGroup(request):
    distinguishedName = request.POST.get('add_group_distinguishedName')
    cn = request.POST.get('add_group_cn')
    scope = request.POST.get('group_scope')
    type = request.POST.get('group_type')
    sAMAccountName = request.POST.get('add_group_sAMAccountName')
    displayName = request.POST.get('add_group_displayName')
    description = request.POST.get('add_group_description')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            groupType = int(scope) - int(type)
            attributes = {}
            if displayName:
                attributes.update({'displayName': displayName})
            if description:
                attributes.update({'description': description})
            result = newGroup(distinguishedName,
                              cn,
                              sAMAccountName,
                              groupType,
                              attributes=attributes)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #13
0
def addapiuser(request):
    apiusername = request.POST.get('add_api_username', None)
    password = request.POST.get('add_api_password', None)
    name = request.POST.get('add_api_name', None)
    department = request.POST.get('add_api_department', None)
    description = request.POST.get('add_api_description', None)
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if apiusername and password:
                insert_apiusers_profiles = insert_apiusers_profile(
                    apiusername, password, name, department, description)
                if insert_apiusers_profiles:
                    result = {'isSuccess': True, "message": '新建成功'}
                else:
                    result = {'isSuccess': False, "message": '写入数据库失败'}
            else:
                result = {'isSuccess': False, "message": '用户名或密码未填写'}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #14
0
def addapipermissions(request):
    username_id = request.POST.get('username_id', None)
    apinames = request.POST.get('apiname', None)
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if username_id and apinames:
                apinamelist = apinames.split(',')
                for apiname in apinamelist:
                    apiname_s = apiname.strip()
                    if apiname_s:
                        apinamepermissions = True
                        get_apinamepermissions_iss = get_apinamepermissions_is(
                            username_id, apiname_s)
                        if not get_apinamepermissions_iss:
                            apinamepermissions = insert_apinamepermissions(
                                username_id, apiname_s)
                if apinamepermissions:
                    result = {'isSuccess': True, "message": '添加成功'}
                else:
                    result = {'isSuccess': False, "message": '写入数据库失败'}
            else:
                result = {'isSuccess': False, "message": 'apiname栏位未填写,或其他'}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #15
0
def executecreatmail(request):
    getData = request.POST.get('getData', {})
    maildb = request.POST.get('maildb', '')
    mailarchive = request.POST.get('mailarchive', '')
    mailarchivedb = request.POST.get('mailarchivedb', '')
    username = request.session.get('username')
    try:
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            getDatatojson = json.loads(getData)
            if getDatatojson and maildb:
                modifyalluser = threxecutecreatmail(getDatatojson, username,
                                                    maildb, mailarchive,
                                                    mailarchivedb)
                if modifyalluser:
                    if '' in getDatatojson[0]:
                        getDatatojson[0].pop('')
                    if '0' in getDatatojson[0]:
                        getDatatojson[0].pop('0')
                    if 'status' in getDatatojson[0]:
                        getDatatojson[0].pop('status')
                    attributesldap = list(getDatatojson[0].keys())
                    columns = []
                    for c in range(0, len(attributesldap)):
                        columns.append({
                            'field': attributesldap[c],
                            'title': attributesldap[c]
                        })
                    for modifuser in modifyalluser:
                        if modifuser.get('description', ''):
                            modifuser['description'] = str(
                                modifuser['description'][0])
                result = {
                    'isSuccess': True,
                    "message": modifyalluser,
                    'columns': columns
                }
            else:
                result = {
                    'isSuccess': False,
                    "message": '传入空值',
                }
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #16
0
def addUser(request):
    distinguishedName = request.POST.get('add_user_distinguishedName')
    cn = request.POST.get('add_user_cn')
    sn = request.POST.get('add_user_sn')
    givenName = request.POST.get('add_user_givenName')
    password = request.POST.get('add_user_password')
    userPrincipalName1 = request.POST.get('add_user_userPrincipalName1')
    userPrincipalName2 = request.POST.get('add_user_userPrincipalName2')
    sAMAccountName1 = request.POST.get('add_user_sAMAccountName1')
    sAMAccountName2 = request.POST.get('add_user_sAMAccountName2')
    displayName = request.POST.get('add_user_displayName')
    description = request.POST.get('add_user_description')
    userAccountControl = request.POST.get('add_user_userAccountControl')
    mail = request.POST.get('add_user_mail')
    maildb = request.POST.get('add_user_mail_db')
    try:
        userPrincipalName = userPrincipalName1 + userPrincipalName2
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if userAccountControl == 'yes':
                userAccountControl = 544
            else:
                userAccountControl = 546
            attributes = {}
            if displayName:
                attributes.update({'displayName': displayName})
            if description:
                attributes.update({'description': description})
            result = newUser(distinguishedName=distinguishedName,
                             cn=cn,
                             sn=sn,
                             givenName=givenName,
                             displayName=None,
                             userPrincipalName=userPrincipalName,
                             sAMAccountName=sAMAccountName2,
                             password=password,
                             userAccountControl=userAccountControl,
                             mail=mail,
                             maildb=maildb,
                             attributes=attributes)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #17
0
def executemodifypasswd(request):
    getData = request.POST.get('getData', {})
    radiovaule = request.POST.get('radiovaule', None)
    pwdLastSet = request.POST.get('pwdLastSet', None)
    add_passwd_count = request.POST.get('add_passwd_count', None)
    add_passwd1 = request.POST.get('add_passwd1', None)
    add_passwd2 = request.POST.get('add_passwd2', None)
    username = request.session.get('username')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            getDatatojson = json.loads(getData)
            if getDatatojson and radiovaule and (add_passwd1 == add_passwd2):
                modifyalluser = thrmodifyalluserpasswd(getDatatojson, username,
                                                       radiovaule, pwdLastSet,
                                                       add_passwd_count,
                                                       add_passwd1)
                columns = [{
                    'field': 'sAMAccountName',
                    'title': 'sAMAccountName'
                }, {
                    'field': 'password',
                    'title': 'password'
                }, {
                    'field': 'pwdLastSet',
                    'title': 'pwdLastSet'
                }]
                result = {
                    'isSuccess': True,
                    "message": modifyalluser,
                    'columns': columns
                }
            else:
                result = {
                    'isSuccess': False,
                    "message": '传入空值或2次密码不一致',
                }
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #18
0
def moveDnsToOu(request):
    dns = request.POST.getlist('dns[]')
    new_superior = request.POST.get('new_superior')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            result = dnMoveToOu(dns, new_superior)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #19
0
def show_object_for_dn(request):
    distinguishedName = request.POST.get('distinguishedName')
    username = request.session.get('username')
    if distinguishedName:
        try:
            result = get_object_for_dn(distinguishedName)
            if not result["isSuccess"]:
                insert_log(username, request, str(result['isSuccess']),
                           str(result), '')
            response = HttpResponse()
            response['Content-Type'] = "text/javascript"
            response.write(json.dumps(result, default=date_handler))
            return response
        except Exception as e:
            print(e)
            return render_to_response('ad/directorytree.html', locals())
    else:
        return render_to_response('login.html')
Пример #20
0
def uploadfiletemplate(request):
    files = request.FILES.get('file')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            filename = handle_uploaded_file(files)
            data = xlrd.open_workbook(filename)
            table = data.sheet_by_index(0)
            nrows = table.nrows  # 行数
            ncols = table.ncols  # 列数
            heard = []
            heardfield = table.row_values(0)
            #获取抬头
            for c in heardfield:
                if c:
                    heard.append({'field': c, 'title': c})
            # 从第2行开始读取 EXCEL
            tabledata = []
            for i in range(1, nrows):
                data1 = {}
                row_data = table.row_values(i)
                for j in range(0, len(heardfield)):
                    if isinstance(row_data[j], str):
                        row_data1 = row_data[j].replace(" ", '')
                    else:
                        row_data1 = row_data[j]
                    data1.update({heardfield[j]: row_data1})
                tabledata.append(data1)
            result = {
                'isSuccess': True,
                "message": '',
                'heard': heard,
                'tabledata': tabledata
            }
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #21
0
def savemess(request):
    username = request.session.get('username')
    try:
        post = request.POST
        title = post.get('titel')
        tab = post.get('tab1')
        name = post.get('markup')
        remessage=savemessa(title, tab, name, username)
        if remessage==():
            result = {'isSuccess': True, "message": '保存成功'}
        else:
            result = {'isSuccess': False, "message": '保存失败'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '新建文档')
    response = HttpResponse()
    response['Content-Type'] = "application/json"
    response.write(json.dumps(result, default=str).encode("UTF-8"))
    return response
Пример #22
0
def setObjectAttributes(request):
    distinguishedName = request.POST.get('distinguishedName')
    attributesName = request.POST.get('attributesName')
    attributesVaule = request.POST.get('attributesVaule')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'changelw')
        if permess['isSuccess']:
            result = setAccount(distinguishedName, attributesName,
                                attributesVaule)
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #23
0
def show_ou_for_dn(request):
    distinguishedName = request.POST.get('distinguishedName')
    treeid = request.POST.get('id')
    username = request.session.get('username')
    if distinguishedName:
        try:
            get_ou_for_dns = get_ou_for_dn(distinguishedName, treeid)
            result = get_ou_for_dns['message']
            if not get_ou_for_dns["isSuccess"]:
                insert_log(username, request, str(get_ou_for_dns['isSuccess']),
                           str(get_ou_for_dns), '')
            response = HttpResponse()
            response['Content-Type'] = "text/javascript"
            response.write(json.dumps(result))
            return response
        except Exception as e:
            print(e)
            return render_to_response('ad/directorytree.html', locals())
    else:
        return render_to_response('login.html')
Пример #24
0
def modifyapiattributesleve(request):
    id = request.POST.get('add_api_apiname', None)
    attributes = request.POST.get('add_api_attributes', None)
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            update_attributeslevels = update_attributeslevel(attributes, id)
            if update_attributeslevels:
                result = {'isSuccess': True, "message": '更新成功'}
            else:
                result = {'isSuccess': False, "message": '更新数据库失败'}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result).encode("UTF-8"))
    return response
Пример #25
0
def deluserpermissions(request):
    ids = request.POST.getlist('ids', None)
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            for id in ids:
                delect_apiusers_profiles = delect_apinamepermissions(id)
            if delect_apiusers_profiles:
                result = {'isSuccess': True, "message": str(ids) + '删除成功'}
            else:
                result = {'isSuccess': False, "message": str(ids) + '删除失败'}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result).encode("UTF-8"))
    return response
Пример #26
0
def addorganizationalUnit(request):
    distinguishedName = request.POST.get('distinguishedName')
    cn = request.POST.get('cn')
    prevent = request.POST.get('checkbox')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            result = newOrganizationalUnit(distinguishedName,
                                           cn,
                                           prevent,
                                           attributes={})
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #27
0
def creatalluser(request):
    get_user_distinguishedName = request.POST.get('get_user_distinguishedName',
                                                  None)
    getData = request.POST.get('getData', {})
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            getDatatojson = json.loads(getData)
            creatallusers = thrcreatalluser(getDatatojson,
                                            get_user_distinguishedName)
            if creatallusers:
                if '' in getDatatojson[0]:
                    getDatatojson[0].pop('')
                if '0' in getDatatojson[0]:
                    getDatatojson[0].pop('0')
                attributesldap = list(creatallusers[0].keys())
                columns = []
                for c in range(0, len(attributesldap)):
                    if not attributesldap[c] == 'status':
                        columns.append({
                            'field': attributesldap[c],
                            'title': attributesldap[c]
                        })
                result = {
                    'isSuccess': True,
                    "message": creatallusers,
                    "columns": columns
                }
            else:
                result = {'isSuccess': False, "message": '都未新建成功或者没有数据'}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response
Пример #28
0
def modifyapiuser(request):
    field = request.POST.get('field', None)
    row = request.POST.get('row', None)
    oldValue = request.POST.get('oldValue', None)
    password = request.POST.get('password', None)
    new_active = request.POST.get('new_active', None)
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if field == 'password':
                password = make_password(password)
                update_apiusers_profiles = update_apiusers_profile(
                    row, field, password)
            elif field == 'is_active':
                update_apiusers_profiles = update_apiusers_profile(
                    row, field, new_active)
            else:
                rowjson = json.loads(row)
                id = rowjson.get('id')
                attributesVaule = rowjson.get(field, None)
                update_apiusers_profiles = update_apiusers_profile(
                    id, field, attributesVaule)
            if update_apiusers_profiles:
                result = {'isSuccess': True, "message": field + '更新成功'}
            else:
                result = {'isSuccess': False, "message": '更新失败'}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result).encode("UTF-8"))
    return response
Пример #29
0
def exportListToOU(request):
    distinguishedName = request.GET.get('distinguishedName')
    search_scope = request.GET.get('search_scope')
    try:
        username = request.session.get('username')
        permess = Userperm(username, 'operate')
        if permess['isSuccess']:
            if distinguishedName:
                if search_scope == 'true':
                    search_scope = 'SUBTREE'
                else:
                    search_scope = 'LEVEL'
                """导出数据至excel"""
                # 如果是POST请求,则根据提交的表单数据,判断导出哪些数据
                output = io.BytesIO()  # 将xlsx数据写入数据流中
                workbook = xlsxwriter.Workbook(output)
                worksheet = workbook.add_worksheet()  # 创建一个工作表对象
                # 定义数据表头列表
                title = [u'名称', u'登录名', u'类型', u'描述', u'显示名称', u'路径']
                datas = getObjectToDn(distinguishedName, search_scope)
                name = distinguishedName.split(',')[0].split('=')[1]
                format = workbook.add_format()  # 定义format格式对象
                format.set_border(1)  # 定义format对象单元格边框加粗(1像素)的格式
                format_title = workbook.add_format()  # 定义format_title格式对象
                format_title.set_border(1)  # 定义format_title对象单元格边框加粗(1像素)的格式
                format_title.set_bg_color(
                    '#cccccc')  # 定义format_title对象单元格背景颜色为
                # '#cccccc'的格式
                format_title.set_align('center')  # 定义format_title对象单元格居中对齐的格式
                format_title.set_bold()  # 定义format_title对象单元格内容加粗的格式
                format_ave = workbook.add_format()  # 定义format_ave格式对象
                format_ave.set_border(1)  # 定义format_ave对象单元格边框加粗(1像素)的格式
                format_ave.set_num_format('0.00')  # 定义format_ave对象单元格数字类别显示格式
                # 下面分别以行或列写入方式将标题、业务名称、流量数据写入起初单元格,同时引用不同格式对象
                worksheet.set_column('A:J', 19)
                worksheet.set_column('F:F', 60)
                worksheet.write_row('A1', title, format_title)
                nowdate = datetime.now().strftime('%Y-%m-%d')
                if datas['isSuccess']:
                    deatmessageList = datas['message']
                    i = 2
                    for attributes in deatmessageList:
                        date = (str(attributes['name']),
                                str(attributes['sAMAccountName']),
                                str(
                                    objectClassFrom(
                                        attributes['objectClass'],
                                        attributes['groupType'])['types']),
                                str(attributes['description']),
                                str(attributes['displayName']),
                                str(attributes['distinguishedName']))
                        row = 'A' + str(i)
                        worksheet.write_row(row, date, format)
                        i = i + 1
                    workbook.close()
                    # 将数据流的游标指向起始位置
                    output.seek(0)
                    result = {'isSuccess': True, "message": name + '导出列表'}
                    insert_log(username, request, str(result['isSuccess']),
                               str(result), '')
                    response = HttpResponse(
                        output.read(),
                        content_type=
                        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                    )
                    response[
                        'Content-Disposition'] = 'attachment; filename="{0}{1}.xlsx"'.format(
                            name + '导出列表', nowdate).encode('utf-8')
                    return response
                else:
                    result = {'isSuccess': False, "message": '导出出现异常'}
                    insert_log(username, request, str(result['isSuccess']),
                               str(result), '')
                    response = HttpResponse(
                        output.read(),
                        content_type=
                        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                    )
                    response[
                        'Content-Disposition'] = 'attachment; filename="{0}{1}.xlsx"'.format(
                            '导出出现异常', nowdate).encode('utf-8')
                    return response
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)}
Пример #30
0
def permsetest(request):
    logongroup = request.POST.get('logongroup')
    changpwdgr = request.POST.get('changpwdgr')
    changfiled = request.POST.get('changfiled')
    setopert = request.POST.get('setopert')
    permsetest_post = request.POST
    try:
        username = request.session.get('username')
        if username == returnadminusernamevalue:
            with ldap3RESTARTABLE as conn:
                try:
                    # 判断填写的栏位在AD中是否有对应的组
                    logingr_dn_list = []
                    per_dn_list = []
                    for per in permsetest_post:
                        conn.search(search_base=ladp3search_base, search_filter='(&(objectClass=group)(sAMAccountName=' + permsetest_post[per] + '))')
                        result_per = conn.result
                        response_per = conn.response
                        per_dn = response_per[0].get('dn', '')
                        if per_dn:
                            if per == 'logongroup':
                                logingr_dn_list.append(per_dn)
                            else:
                                per_dn_list.append(per_dn)
                        else:
                            result = {'isSuccess': False, "message": per+'栏位填写错误,找不到这个组 或 重启服务'}
                            insert_log(username, request, str(result['isSuccess']), str(result), '')
                            response = HttpResponse()
                            response['Content-Type'] = "text/javascript"
                            response.write(json.dumps(result))
                            return response
                        # 判断是否有相关数据表,没有则创建UserPer表
                    if not selectperdb():
                        if crearperdb() == ():
                            insert_log(username, request, str('true'), str('crearperdb'), '创建UserPer表')
                        else:
                            result = {'isSuccess': False, "message": '表格创建失败'}
                            insert_log(username, request, str(result['isSuccess']), str(result), '')
                            response = HttpResponse()
                            response['Content-Type'] = "text/javascript"
                            response.write(json.dumps(result))
                            return response
                    # 查询数据库,如果里面有权限组数据,则移除登陆组成员中的其他组
                    # 这一步 报错只记录数据库
                    try:
                        permessa = getpermsessage()
                        if permessa:
                            login_group_dn_list = []
                            per_group_dn_list = []
                            for i in permessa:
                                conn.search(
                                    search_base=ladp3search_base,
                                    search_filter="(&(objectCategory=group)(sAMAccountName=" + permessa[i] + "))",
                                    search_scope='SUBTREE',
                                )
                                result_id = conn.result
                                response_id = conn.response
                                group_dn = response_id[0].get('dn', '')
                                if group_dn:
                                    if i == 'logongroup':
                                        login_group_dn_list.append(group_dn)
                                    else:
                                        per_group_dn_list.append(group_dn)
                            if login_group_dn_list and per_group_dn_list:
                                remove_member = conn.extend.microsoft.remove_members_from_groups(members=per_group_dn_list, groups=login_group_dn_list)
                                insert_log(username, request, str(remove_member), str('remove_members_from_groups'), str({"members":per_group_dn_list, 'groups':login_group_dn_list}))
                    except Exception as e:
                        insert_log(username, request, 'false', str(e), '查询数据库,如果里面有权限组数据,则移除登陆组成员中的其他组')
                    # 在新登陆组成员中 ,加入新的组
                    add_members = conn.extend.microsoft.add_members_to_groups(members=per_dn_list, groups=logingr_dn_list)
                    insert_log(username, request, str(add_members), str('add_members_to_groups'), str({"members":per_dn_list, 'groups':logingr_dn_list}))
                    # 写数据库
                    if insert_userper(logongroup, changpwdgr, changfiled, setopert) == ():
                        result = {'isSuccess': True, "message": '成功'}
                    else:
                        result = {'isSuccess': False, "message": '数据写入失败'}
                except:
                    result = {'isSuccess': False, "message": '出现异常'}
        else:
            result = {'isSuccess': False, "message": '权限不足'}
    except Exception as e:
        result = {'isSuccess': False, "message": str(e)+"或 重启服务"}
    insert_log(username, request, str(result['isSuccess']), str(result), '')
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(json.dumps(result))
    return response