Beispiel #1
0
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()
Beispiel #2
0
def getUserData():

    l = conecta()
    u = Users(l, "", "", "", "", request.vars['username'], "", "", "", "")
    response = u.getUserData()
    l.close()
    return dict(response=response)
Beispiel #3
0
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()
Beispiel #4
0
def getUserData():

    l=conecta()
    u = Users(l,"","","","",request.vars['username'],"","","","")
    response = u.getUserData()
    l.close()
    return dict(response=response)
Beispiel #5
0
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")       
Beispiel #6
0
    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]
        }
Beispiel #7
0
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)
Beispiel #8
0
    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] }
Beispiel #9
0
    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
Beispiel #10
0
    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
Beispiel #11
0
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")
Beispiel #12
0
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
    )
Beispiel #13
0
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()
Beispiel #14
0
def getUserData(username):
    ld=conecta()
    u = Users(ld,"","","","",username,"","","","")
    userData = u.getUserData() 
    ld.close()
    return userData