def addHistory(l,username,id_laptop,computer_name): lh = LaptopsHistory(cdb,"",id_laptop,"","","","","","","") lastUsername = lh.getLastHistory() if username!="" and lastUsername['username']!=username: u = Users(l,"","","","",username,"","","","") userData = u.getUserData() if userData["uidnumber"]!="": # Si existe el usuario lh.set_id_state(2) # Asignado if userData["type"]=="student": lh.set_id_user_type(2) elif userData["type"]=="teacher": lh.set_id_user_type(1) lh.set_computer_name(computer_name) lh.set_username(username) lh.set_name(userData["name"]+" "+userData["surname"]) lh.set_nif(userData["nif"]) lh.set_comment("Volcado masivo ControlIES") lh.add() elif username=="" and lastUsername['username']!="": lh.set_id_state(1) # No Asignado lh.set_computer_name(computer_name) lh.set_comment("Volcado masivo ControlIES") lh.add()
def getUserData(): l = conecta() u = Users(l, "", "", "", "", request.vars['username'], "", "", "", "") response = u.getUserData() l.close() return dict(response=response)
def getClassroomDetails(): import xmlrpclib from applications.controlies.modules.Users import Users l=conecta() objUser = Users(l,"","","","",request.vars['teacher'],"","","","") teacherData = objUser.getUserData() s = xmlrpclib.Server("http://" + request.vars['classroom'] + ":8900"); users = s.Users() response = [] for u in users: user = u.split("@") objUser = Users(l,"","","","",user[0],"","","","") photo = objUser.getUserPhoto() # response.append({ 'username': user[0], 'host': user[1], 'photo': photo }) #return json.dumps({ "teacher" : teacherData, "classroom" : request.args['classroom'][0], "students" : response }) return dict()
def getUserData(): l=conecta() u = Users(l,"","","","",request.vars['username'],"","","","") response = u.getUserData() l.close() return dict(response=response)
def create_home_directory(): from applications.controlies.modules.SSHConnection import SSHConnection #c = SSHConnection(request.vars['host'],request.vars['user'],request.vars['password']) c = SSHConnection("servidor","root",request.vars['password']) response = c.process() print request.vars if response != True: return dict(response = response) l=conecta() u = Users(l,"","","","",request.vars['username'],"","","","") responseUser = u.getUserData() l.close() homeDirectory = Utils.homeDirectory(request.vars['type'])+responseUser["user"] c.exec_command("cp -r /etc/skel "+homeDirectory) c.exec_command("chown -R "+responseUser["uidnumber"]+":"+responseUser["gidnumber"]+" "+homeDirectory) try: if request.vars["trustRelationship"] == "on": dir_ssh = "/var/web2py/applications/controlies" Utils.generateRSAkeys(dir_ssh) c.open_ftp() c.removeFile("/tmp/controlIES_rsa.pub") c.putFile(dir_ssh+"/.ssh/id_rsa.pub","/tmp/controlIES_rsa.pub") c.exec_command('cat /tmp/controlIES_rsa.pub >> /root/.ssh/authorized_keys') c.close_ftp() except: pass c.close() return dict(response = "OK")
def listUsers(self, args): # grid parameters limit = int(args['rows']) page = int(args['page']) start = limit * page - limit finish = start + limit # sort by field sortBy = args['sidx'] # reverse Sort reverseSort = False if args['sord'] == "asc": reverseSort = True groupData = self.getGroupData() rows = [] for i in groupData["memberuid"]: if i == "": continue u = Users(self.ldap, "", "", "", "", i, "", "", "", "") userData = u.getUserData() row = { "id": userData["user"], "cell": [ userData["surname"] + ", " + userData["name"], userData["user"], userData["nif"] ], "cn": userData["surname"] + ", " + userData["name"], "uid": userData["user"], "employeeNumber": userData["nif"] } rows.append(row) if len(rows) > 0: totalPages = floor(len(rows) / int(limit)) module = len(rows) % int(limit) if module > 0: totalPages = totalPages + 1 else: totalPages = 0 if page > totalPages: page = totalPages # sort rows result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort) return { "page": page, "total": totalPages, "records": len(groupData["memberuid"]), "rows": result[start:finish] }
def make_directory(username, type, c): l=conecta() u = Users(l,"","","","",username,"","","","") responseUser = u.getUserData() l.close() homeDirectory = Utils.homeDirectory(request.vars['type'])+responseUser["user"] if type=="staff": c.exec_command("test ! -d /home/profesor/staff && mkdir /home/profesor/staff; chown root:staff /home/profesor/staff") c.exec_command("cp -r /etc/skel "+homeDirectory+"; chown -R "+responseUser["user"]+":"+responseUser["user"]+" "+homeDirectory)
def listUsers(self,args): from applications.controlies.modules.Users import Users # grid parameters limit = int(args['rows']) page = int(args['page']) start = limit * page - limit finish = start + limit; # sort by field sortBy = args['sidx'] if sortBy == "cn": sortBy = "id" # reverse Sort reverseSort = False if args['sord']== "asc": reverseSort = True groupData = self.getGroupData() rows = [] for i in groupData["memberuid"]: u = Users(self.ldap,"","","","",i,"","","","") userData = u.getUserData() row = { "id":userData["user"], "cell":[userData["name"],userData["user"],userData["nif"]], "cn": userData["name"], "uid": userData["user"], "employeeNumber": userData["nif"] } rows.append(row) if len(rows) > 0: totalPages = floor( len(rows) / int(limit) ) module = len(rows) % int(limit) if module > 0: totalPages = totalPages+1 else: totalPages = 0 if page > totalPages: page = totalPages # sort rows result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort) return { "page":page, "total":totalPages, "records":len(groupData["memberuid"]), "rows":result[start:finish] }
def getGroupUsersData(self): groupData = self.getGroupData() rows = [] for i in groupData["memberuid"]: u = Users(self.ldap, "", "", "", "", i, "", "", "", "") userData = u.getUserData() row = { "id": userData["user"], "sn": userData["surname"] + ", " + userData["name"], "uid": userData["user"], "employeeNumber": userData["nif"] } rows.append(row) newlist = sorted(rows, key=lambda k: k['sn']) return newlist
def getGroupUsersData(self): groupData = self.getGroupData() rows = [] for i in groupData["memberuid"]: u = Users(self.ldap,"","","","",i,"","","","") userData = u.getUserData() row = { "id":userData["user"], "sn": userData["surname"]+", "+userData["name"], "uid": userData["user"], "employeeNumber": userData["nif"] } rows.append(row) newlist = sorted(rows, key=lambda k: k['sn']) return newlist
def create_home_directory_withoutpass(): from applications.controlies.modules.SSHConnection import SSHConnection c = SSHConnection("servidor","root","") response = c.connectWithoutPass("/var/web2py/applications/controlies/.ssh/id_rsa") if response != True: return dict(response = response) l=conecta() u = Users(l,"","","","",request.vars['username'],"","","","") responseUser = u.getUserData() l.close() homeDirectory = Utils.homeDirectory(request.vars['type'])+responseUser["user"] c.exec_command("cp -r /etc/skel "+homeDirectory) c.exec_command("chown -R "+responseUser["uidnumber"]+":"+responseUser["gidnumber"]+" "+homeDirectory) c.close() return dict(response = "OK")
def make_directory(username, type, c): l = conecta() u = Users(l, "", "", "", "", username, "", "", "", "") responseUser = u.getUserData() l.close() homeDirectory = Utils.homeDirectory(request.vars["type"]) + responseUser["user"] if type == "staff": c.exec_command( "test ! -d /home/profesor/staff && mkdir /home/profesor/staff; chown root:staff /home/profesor/staff" ) c.exec_command( "cp -r /etc/skel " + homeDirectory + "; chown -R " + responseUser["user"] + ":" + responseUser["user"] + " " + homeDirectory )
def getClassroomDetails(): import xmlrpclib from applications.controlies.modules.Users import Users l = conecta() objUser = Users(l, "", "", "", "", request.vars['teacher'], "", "", "", "") teacherData = objUser.getUserData() s = xmlrpclib.Server("http://" + request.vars['classroom'] + ":8900") users = s.Users() response = [] for u in users: user = u.split("@") objUser = Users(l, "", "", "", "", user[0], "", "", "", "") photo = objUser.getUserPhoto() # response.append({ 'username': user[0], 'host': user[1], 'photo': photo }) #return json.dumps({ "teacher" : teacherData, "classroom" : request.args['classroom'][0], "students" : response }) return dict()
def getUserData(username): ld=conecta() u = Users(ld,"","","","",username,"","","","") userData = u.getUserData() ld.close() return userData