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)
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
def list(): l = conecta() g = Groups(l, "", "", "") a = request.vars response = g.list(a) l.close() return response
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)
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)
def list(): l=conecta() g = Groups(l,"school_class","","") a=request.vars response = g.list(a) l.close() return response
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)
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)
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
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)
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)
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
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
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
def delete(): l = conecta() g = Groups(l, "", request.vars['name'], "") response = g.delete() l.close() return dict(response=response)
def getUsers(): l = conecta() g = Groups(l, "", request.vars["row_id"], "") response = g.listUsers(request.vars) l.close() return response
def delete(): l = conecta() g = Groups(l, "", request.vars["name"], "") response = g.delete() l.close() return dict(response=response)
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)
def getUsers(): l=conecta() g = Groups(l,"",request.vars['name'],"") response = g.getGroupUsersData() l.close() return dict(response=response)
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)
def getUsers(): l = conecta() g = Groups(l, "", request.vars['row_id'], "") response = g.listUsers(request.vars) l.close() return response