Example #1
0
def check_groups():
    l=conecta()
    u = Users(l,"","","","","","","","","")
    users = u.getAllUsers()
    
    allUsersUID=[]
    allUsers=[]
    for us in users:
        allUsersUID.append(us['uid'][0])
        allUsers.append("uid="+us['uid'][0]+",ou=People,dc=instituto,dc=extremadura,dc=es")
                    
    g = Groups(l,"","","")
    groups = g.getAllGroups()

    info=[]
    count=1
    for g in groups:
        try:
            if g['groupType'][0]=="school_class" or g['groupType'][0]=="school_department" or g['groupType'][0]=="authority_group":
                for m in g['member']:
                    if m!="" and m not in allUsers:
                        info.append({'id_check':count, 'group':g['cn'][0], 'type':'member', 'user':m, 'info':'dont_exists' })
                        count+=1

                for m in g['memberUid']:
                    if m!="" and m not in allUsersUID:
                        info.append({'id_check':count, 'group':g['cn'][0], 'type':'memberUid', 'user':m, 'info':'dont_exists' })
                        count+=1
        except:
            pass
        
    return dict(info=info)
Example #2
0
def getUsers():
    l=conecta()
    g = Groups(l,"",request.vars['row_id'],"")
    response = g.listUsers(request.vars)
    l.close()

    # Obtenemos los numeros de serie de los portatiles
    sql = "SELECT lh.username, l.serial_number, lt.trademark, lt.model FROM laptops l" 
    sql = sql+" LEFT JOIN laptops_historical lh ON l.id_laptop=lh.id_laptop"
    sql = sql+" LEFT JOIN laptops_trademarks lt ON l.id_trademark=lt.id_trademark" 
    sql = sql+" GROUP BY l.id_laptop ORDER BY lh.datetime desc"
    result = cdb.executesql(sql)

    serials={}
    for r in result:
        if str(r[0])!="":
            serials[str(r[0])]={'serial':str(r[1]), 'trademark':str(r[2])+' - '+str(r[3])}

    rows=[]
    for r in response["rows"]:
        num=""
        trademark=""
        if r["cell"][1] in serials:
            num = serials[r["cell"][1]]['serial']
            trademark = serials[r["cell"][1]]['trademark']

        r["cell"].append(num)
        r["serial_number"]=num
        r["cell"].append(trademark)
        r["trademark"]=trademark
        rows.append(r)

    response["rows"]=rows
    return response  
Example #3
0
def list():
    l = conecta()
    g = Groups(l, "", "", "")
    a = request.vars
    response = g.list(a)
    l.close()
    return response
Example #4
0
def modify():
    l = conecta()
    g = Groups(l, request.vars['type'], request.vars['name'],
               request.vars['users'])
    response = g.process(request.vars['action'])
    l.close()
    return dict(response=response)
Example #5
0
def modify_user():
    l = conecta()
    departments = []
    classrooms = []
    if "departments[]" in request.vars:
        departments = request.vars["departments[]"]
    if "classrooms[]" in request.vars:
        classrooms = request.vars["classrooms[]"]

    if request.vars["type"] == "staff":
        g = Groups(l, "authority_group", "staff", [])
        if not g.checkGroup():
            g.add()

    u = Users(
        l,
        request.vars["type"],
        request.vars["name"],
        request.vars["surname"],
        request.vars["nif"],
        request.vars["user"],
        request.vars["password"],
        request.vars["password2"],
        departments,
        classrooms,
    )
    response = u.process(request.vars["action"])
    l.close()
    return dict(response=response)
Example #6
0
def list():
    l=conecta()
    g = Groups(l,"school_class","","")
    a=request.vars
    response = g.list(a)
    l.close()

    return response  
Example #7
0
def getInfoLDAP():
    info = {}
    l=conecta()
        
    request.vars["type"]="Profesor"
    request.vars["rows"]="999999999"
    request.vars["page"]="1"
    request.vars["sidx"]="cn"
    request.vars["sord"]="desc"
    

    u = Users(l,"","","","","","","","","")
    response = u.list(request.vars)
    info["teachers"] = response["records"]
        
    request.vars["type"]="Alumno"
    response = u.list(request.vars)
    info["students"] = response["records"]

    g = Groups(l,"","","")
    request.vars["type"]="Aula"        
    response = g.list(request.vars)
    info["course"] = response["records"]

    request.vars["type"]="Departamento"        
    response = g.list(request.vars)
    info["departments"] = response["records"]
    
    h = Hosts (l,"","","","ltsp-server-hosts")
    response = h.list(request.vars)   
    info["ltspservers"] = response["records"]

    h = Hosts (l,"","","","workstation-hosts")
    response = h.list(request.vars)   
    info["workstations"] = response["records"]

    h = Hosts (l,"","","","laptop-hosts")
    response = h.list(request.vars)   
    info["laptops"] = response["records"]

    h = Thinclients (l,"","","","")
    request.vars["cn"]="-o"
    response = h.list(request.vars) 
    info["thinclients"] = response["records"]

    request.vars["cn"]="-p"
    response = h.list(request.vars) 
    info["student-laptops"] = response["records"]

    info["total-computers"] = info["student-laptops"] + info["thinclients"] + info["laptops"] + info["workstations"]
    info["total-users"] = info["teachers"] + info["students"]
    
    l.close()

    return dict(info=info)
Example #8
0
def getInfoLDAP():
    info = {}
    l = conecta()

    request.vars["type"] = "Profesor"
    request.vars["rows"] = "999999999"
    request.vars["page"] = "1"
    request.vars["sidx"] = "cn"
    request.vars["sord"] = "desc"

    u = Users(l, "", "", "", "", "", "", "", "", "")
    response = u.list(request.vars)
    info["teachers"] = response["records"]

    request.vars["type"] = "Alumno"
    response = u.list(request.vars)
    info["students"] = response["records"]

    g = Groups(l, "", "", "")
    request.vars["type"] = "Aula"
    response = g.list(request.vars)
    info["course"] = response["records"]

    request.vars["type"] = "Departamento"
    response = g.list(request.vars)
    info["departments"] = response["records"]

    h = Hosts(l, "", "", "", "ltsp-server-hosts")
    response = h.list(request.vars)
    info["ltspservers"] = response["records"]

    h = Hosts(l, "", "", "", "workstation-hosts")
    response = h.list(request.vars)
    info["workstations"] = response["records"]

    h = Hosts(l, "", "", "", "laptop-hosts")
    response = h.list(request.vars)
    info["laptops"] = response["records"]

    h = Thinclients(l, "", "", "", "")
    request.vars["cn"] = "-o"
    response = h.list(request.vars)
    info["thinclients"] = response["records"]

    request.vars["cn"] = "-p"
    response = h.list(request.vars)
    info["student-laptops"] = response["records"]

    info["total-computers"] = info["student-laptops"] + info["thinclients"] + info["laptops"] + info["workstations"]
    info["total-users"] = info["teachers"] + info["students"]

    l.close()

    return dict(info=info)
Example #9
0
def getDataStudents(classroom):
    from applications.controlies.modules.Groups import Groups

    l = conecta()
    g = Groups(l, "", classroom, "")
    listUsers = g.listUsers({
        'rows': '40',
        'page': '1',
        'sidx': 'cn',
        'sord': 'desc'
    })
    l.close()

    # Obtenemos los numeros de serie de los portatiles
    sql = "SELECT lh.username, l.serial_number, lt.trademark, lt.model, st.state FROM laptops l, laptops_historical lh"
    sql = sql + " LEFT JOIN laptops_trademarks lt ON l.id_trademark=lt.id_trademark"
    sql = sql + " LEFT JOIN states st ON st.id_state=lh.id_state "
    sql = sql + " WHERE lh.id_user_type=2 AND l.id_laptop=lh.id_laptop "
    sql = sql + " AND lh.id_historical IN (SELECT MAX(lh2.id_historical) FROM laptops_historical lh2 WHERE lh2.id_laptop=l.id_laptop) "
    sql = sql + " GROUP BY l.id_laptop ORDER BY lh.name asc"
    result = cdb.executesql(sql)
    serials = {}
    for r in result:
        if str(r[0]) != "":
            serials[str(r[0])] = {
                'serial': str(r[1]),
                'trademark': str(r[2]) + ' - ' + str(r[3]),
                'state': str(r[4].encode('utf-8'))
            }

    rows = []
    for r in listUsers["rows"]:
        num = ""
        trademark = ""
        state = " "
        if r["cell"][1] in serials:
            num = serials[r["cell"][1]]['serial']
            trademark = serials[r["cell"][1]]['trademark']
            state = serials[r["cell"][1]]['state']

        if num == "":
            num = "                                              "

        if trademark == "":
            trademark = "                                         "

        r["cell"].append(num)
        r["serial_number"] = num
        r["cell"].append(trademark)
        r["trademark"] = trademark
        r["state"] = state
        rows.append(r)

    return rows
Example #10
0
def modify_user():
    l=conecta() 
    departments=[]
    classrooms=[]                
    if 'departments[]' in request.vars: departments = request.vars['departments[]']
    if 'classrooms[]' in request.vars:classrooms = request.vars['classrooms[]']

    if request.vars['type']=="staff":
        g = Groups(l,"authority_group","staff",[])
        if not g.checkGroup():
            g.add()

    u = Users(l,request.vars['type'],request.vars['name'],request.vars['surname'],request.vars['nif'],request.vars['user'],request.vars['password'],request.vars['password2'],departments,classrooms)
    response = u.process(request.vars['action'])
    l.close()
    return dict(response = response)    
Example #11
0
def check_groups():
    l = conecta()
    u = Users(l, "", "", "", "", "", "", "", "", "")
    users = u.getAllUsers()

    allUsersUID = []
    allUsers = []
    for us in users:
        allUsersUID.append(us['uid'][0])
        allUsers.append("uid=" + us['uid'][0] +
                        ",ou=People,dc=instituto,dc=extremadura,dc=es")

    g = Groups(l, "", "", "")
    groups = g.getAllGroups()

    info = []
    count = 1
    for g in groups:
        try:
            if g['groupType'][0] == "school_class" or g['groupType'][
                    0] == "school_department" or g['groupType'][
                        0] == "authority_group":
                for m in g['member']:
                    if m != "" and m not in allUsers:
                        info.append({
                            'id_check': count,
                            'group': g['cn'][0],
                            'type': 'member',
                            'user': m,
                            'info': 'dont_exists'
                        })
                        count += 1

                for m in g['memberUid']:
                    if m != "" and m not in allUsersUID:
                        info.append({
                            'id_check': count,
                            'group': g['cn'][0],
                            'type': 'memberUid',
                            'user': m,
                            'info': 'dont_exists'
                        })
                        count += 1
        except:
            pass

    return dict(info=info)
Example #12
0
def list():
    l = conecta()

    # Corrige grupos con miembros vacios
    """import applications.controlies.modules.Utils.LdapUtils as LdapUtils
    response = LdapUtils.getClassroomGroupsWithUsers(l)
    for i in response["classrooms"]:
        list2 = [x for x in i[i.keys()[0]] if x]
        if len(list2)>0:
            users = ",".join(list2)
            g = Groups(l,"school_class", i.keys()[0], users)
            g.process("modify")    
    """
    #return response

    g = Groups(l, "", "", "")
    a = request.vars
    response = g.list(a)
    l.close()
    return response
Example #13
0
def getDataStudents(classroom):
    from applications.controlies.modules.Groups import Groups

    l=conecta()
    g = Groups(l,"",classroom,"")
    listUsers = g.listUsers({'rows':'40', 'page':'1', 'sidx':'cn', 'sord':'desc'})
    l.close()

    # Obtenemos los numeros de serie de los portatiles
    sql = "SELECT lh.username, l.serial_number, lt.trademark, lt.model FROM laptops l" 
    sql = sql+" LEFT JOIN laptops_historical lh ON l.id_laptop=lh.id_laptop"
    sql = sql+" LEFT JOIN laptops_trademarks lt ON l.id_trademark=lt.id_trademark" 
    sql = sql+" GROUP BY l.id_laptop ORDER BY lh.datetime desc"
    result = cdb.executesql(sql)

    serials={}
    for r in result:
        if str(r[0])!="":
            serials[str(r[0])]={'serial':str(r[1]), 'trademark':str(r[2])+' - '+str(r[3])}

    rows=[]
    for r in listUsers["rows"]:
        num=""
        trademark=""
        if r["cell"][1] in serials:
            num = serials[r["cell"][1]]['serial']
            trademark = serials[r["cell"][1]]['trademark']

        if num=="":
            num = "                                              "

        if trademark=="":
            trademark = "                                         "

        r["cell"].append(num)
        r["serial_number"]=num
        r["cell"].append(trademark)
        r["trademark"]=trademark
        rows.append(r)
        
    return rows
Example #14
0
def list():
    l=conecta()
    
    # Corrige grupos con miembros vacios
    """import applications.controlies.modules.Utils.LdapUtils as LdapUtils
    response = LdapUtils.getClassroomGroupsWithUsers(l)
    for i in response["classrooms"]:
        list2 = [x for x in i[i.keys()[0]] if x]
        if len(list2)>0:
            users = ",".join(list2)
            g = Groups(l,"school_class", i.keys()[0], users)
            g.process("modify")    
    """    
    #return response
    
    
    g = Groups(l,"","","")
    a=request.vars
    response = g.list(a)
    l.close()
    return response  
Example #15
0
def delete():
    l = conecta()
    g = Groups(l, "", request.vars['name'], "")
    response = g.delete()
    l.close()
    return dict(response=response)
Example #16
0
def getUsers():
    l = conecta()
    g = Groups(l, "", request.vars["row_id"], "")
    response = g.listUsers(request.vars)
    l.close()
    return response
Example #17
0
def delete():
    l = conecta()
    g = Groups(l, "", request.vars["name"], "")
    response = g.delete()
    l.close()
    return dict(response=response)
Example #18
0
def modify():
    l = conecta()
    g = Groups(l, request.vars["type"], request.vars["name"], request.vars["users"])
    response = g.process(request.vars["action"])
    l.close()
    return dict(response=response)
Example #19
0
def getUsers():
    l=conecta()
    g = Groups(l,"",request.vars['name'],"")
    response = g.getGroupUsersData()
    l.close()
    return dict(response=response)  
Example #20
0
def modify():
    l=conecta()
    g = Groups(l,request.vars['type'], request.vars['name'], request.vars['users'])
    response = g.process(request.vars['action'])    
    l.close()
    return dict(response=response)
Example #21
0
def getUsers():
    l = conecta()
    g = Groups(l, "", request.vars['row_id'], "")
    response = g.listUsers(request.vars)
    l.close()
    return response