Revisión 177
Añadido por jredrejo hace casi 14 años
MainLoop.py | ||
---|---|---|
connection = l.connect()
|
||
|
||
pagename=request.path[1:].lower()
|
||
|
||
|
||
if pagename=='':
|
||
request.path='/index.html'
|
||
pagename='index.html'
|
||
... | ... | |
|
||
session = request.getSession()
|
||
l = ILdapConnection(session)
|
||
print command
|
||
|
||
if command == "authentication":
|
||
|
||
l.setCredentials(request.args['host'][0], request.args['user'][0], request.args['password'][0])
|
||
response = l.process()
|
||
return json.dumps({"connection" : response})
|
||
|
||
|
||
l.setCredentials(request.args['host'][0], request.args['user'][0], request.args['password'][0])
|
||
response = l.process()
|
||
return json.dumps({"connection" : response})
|
||
|
||
if command == "users":
|
||
from Plugins.Users import Users
|
||
from Plugins.Users import Users
|
||
|
||
if request.args['action'][0] == "list":
|
||
u = Users(l,"","","","","","","","","")
|
||
response = u.list(request.args)
|
||
return json.dumps(response)
|
||
|
||
elif request.args['action'][0] == "searchUsername":
|
||
u = Users(l,"",request.args['name'][0],request.args['surname'][0],"","","","","","")
|
||
response = u.searchNewUsername()
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getUserData":
|
||
u = Users(l,"","","","",request.args['user'][0],"","","","")
|
||
response = u.getUserData()
|
||
return json.dumps({"response" : response})
|
||
if request.args['action'][0] == "list":
|
||
u = Users(l,"","","","","","","","","")
|
||
response = u.list(request.args)
|
||
return json.dumps(response)
|
||
|
||
elif request.args['action'][0] == "searchUsername":
|
||
u = Users(l,"",request.args['name'][0],request.args['surname'][0],"","","","","","")
|
||
response = u.searchNewUsername()
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getUserData":
|
||
u = Users(l,"","","","",request.args['user'][0],"","","","")
|
||
response = u.getUserData()
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getAllUsers":
|
||
response = LdapUtils.getAllUsers(l)
|
||
return json.dumps(response)
|
||
elif request.args['action'][0] == "getAllUsers":
|
||
response = LdapUtils.getAllUsers(l)
|
||
return json.dumps(response)
|
||
|
||
elif request.args['action'][0] == "delete":
|
||
u = Users(l,"","","","",request.args['user'][0],"","","","")
|
||
response = u.delete()
|
||
return json.dumps({"response" : response})
|
||
|
||
else:
|
||
departments=[]
|
||
classrooms=[]
|
||
|
||
try:
|
||
departments = request.args['multiselect_departments']
|
||
except:
|
||
pass
|
||
elif request.args['action'][0] == "delete":
|
||
u = Users(l,"","","","",request.args['user'][0],"","","","")
|
||
response = u.delete()
|
||
return json.dumps({"response" : response})
|
||
|
||
else:
|
||
departments=[]
|
||
classrooms=[]
|
||
|
||
try:
|
||
departments = request.args['multiselect_departments']
|
||
except:
|
||
pass
|
||
|
||
try:
|
||
classrooms = request.args['multiselect_classrooms']
|
||
except:
|
||
pass
|
||
|
||
u = Users(l,request.args['type'][0],request.args['name'][0],request.args['surname'][0],request.args['nif'][0],request.args['user'][0],request.args['password'][0],request.args['password2'][0],departments,classrooms)
|
||
response = u.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
try:
|
||
classrooms = request.args['multiselect_classrooms']
|
||
except:
|
||
pass
|
||
|
||
u = Users(l,request.args['type'][0],request.args['name'][0],request.args['surname'][0],request.args['nif'][0],request.args['user'][0],request.args['password'][0],request.args['password2'][0],departments,classrooms)
|
||
response = u.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
# Gestion de Grupos
|
||
# Gestion de Grupos
|
||
if command == "groups":
|
||
|
||
from Plugins.Groups import Groups
|
||
|
||
if request.args['action'][0] == "list":
|
||
g = Groups(l,"","","")
|
||
response = g.list(request.args)
|
||
return json.dumps(response)
|
||
|
||
elif request.args['action'][0] == "getAllGroups":
|
||
response = LdapUtils.getAllGroups(l)
|
||
return json.dumps(response)
|
||
|
||
from Plugins.Groups import Groups
|
||
|
||
if request.args['action'][0] == "list":
|
||
g = Groups(l,"","","")
|
||
response = g.list(request.args)
|
||
return json.dumps(response)
|
||
|
||
elif request.args['action'][0] == "getAllGroups":
|
||
response = LdapUtils.getAllGroups(l)
|
||
return json.dumps(response)
|
||
|
||
elif request.args['action'][0] == "getGroupData":
|
||
g = Groups(l,"",request.args['name'][0],"")
|
||
response = g.getGroupData()
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "delete":
|
||
g = Groups(l,"",request.args['name'][0],"")
|
||
response = g.delete()
|
||
return json.dumps({"response" : response})
|
||
|
||
else:
|
||
g = Groups(l,request.args['type'][0], request.args['name'][0], request.args['users'][0])
|
||
response = g.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getGroupData":
|
||
g = Groups(l,"",request.args['name'][0],"")
|
||
response = g.getGroupData()
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "delete":
|
||
g = Groups(l,"",request.args['name'][0],"")
|
||
response = g.delete()
|
||
return json.dumps({"response" : response})
|
||
|
||
else:
|
||
g = Groups(l,request.args['type'][0], request.args['name'][0], request.args['users'][0])
|
||
response = g.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
|
||
if command == "hosts":
|
||
from Plugins.Hosts import Hosts
|
||
from Plugins.Hosts import Hosts
|
||
|
||
if request.args['action'][0] == "list":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.list(request.args)
|
||
if request.args['action'][0] == "list":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.list(request.args)
|
||
print "hosts-list"
|
||
|
||
#prueba para encender un equipo
|
||
#h = Hosts ("a21-pro","172.23.36.47","00:22:15:6e:9c:ba")
|
||
#print "Encendiendo host "+h.getName()
|
||
#h.wakeup()
|
||
return json.dumps(response)
|
||
|
||
|
||
elif request.args['action'][0] == "getThinclientGroups":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.getThinclientGroups ()
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getInternalGroups":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.getInternalGroups ()
|
||
return json.dumps({"response" : response})
|
||
|
||
|
||
elif request.args['action'][0] == "getLTSPServers":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.getLTSPServers ()
|
||
return json.dumps({"response" : response})
|
||
#prueba para encender un equipo
|
||
#h = Hosts ("a21-pro","172.23.36.47","00:22:15:6e:9c:ba")
|
||
#print "Encendiendo host "+h.getName()
|
||
#h.wakeup()
|
||
return json.dumps(response)
|
||
|
||
|
||
elif request.args['action'][0] == "getThinclientGroups":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.getThinclientGroups ()
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getInternalGroups":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.getInternalGroups ()
|
||
return json.dumps({"response" : response})
|
||
|
||
|
||
elif request.args['action'][0] == "getLTSPServers":
|
||
h = Hosts (l,"","","","","")
|
||
response = h.getLTSPServers ()
|
||
return json.dumps({"response" : response})
|
||
|
||
|
||
elif request.args['action'][0] == "getLTSPStatus":
|
||
f = open('/tmp/controlIES.ltpsSevers', 'r')
|
||
computers = f.read().split(" ")
|
||
computers.sort()
|
||
|
||
f = open('/tmp/controlIES.ltpsTeachers', 'r')
|
||
teachers = f.read().split(" ")
|
||
teachers.sort()
|
||
elif request.args['action'][0] == "getLTSPStatus":
|
||
f = open('/tmp/controlIES.ltpsSevers', 'r')
|
||
computers = f.read().split(" ")
|
||
computers.sort()
|
||
|
||
f = open('/tmp/controlIES.ltpsTeachers', 'r')
|
||
teachers = f.read().split(" ")
|
||
teachers.sort()
|
||
|
||
return json.dumps({ "computers":computers, "teachers":teachers })
|
||
return json.dumps({ "computers":computers, "teachers":teachers })
|
||
|
||
|
||
elif request.args['action'][0] == "getClassroomDetails":
|
||
elif request.args['action'][0] == "getClassroomDetails":
|
||
|
||
import xmlrpclib
|
||
from Plugins.Users import Users
|
||
import xmlrpclib
|
||
from Plugins.Users import Users
|
||
|
||
objUser = Users(l,"","","","",request.args['teacher'][0],"","","","")
|
||
teacherData = objUser.getUserData()
|
||
objUser = Users(l,"","","","",request.args['teacher'][0],"","","","")
|
||
teacherData = objUser.getUserData()
|
||
|
||
s = xmlrpclib.Server("http://" + request.args['classroom'][0] + ":8900");
|
||
s = xmlrpclib.Server("http://" + request.args['classroom'][0] + ":8900");
|
||
|
||
users = s.Users()
|
||
users = s.Users()
|
||
|
||
response = []
|
||
for u in users:
|
||
user = u.split("@")
|
||
response = []
|
||
for u in users:
|
||
user = u.split("@")
|
||
|
||
objUser = Users(l,"","","","",user[0],"","","","")
|
||
photo = objUser.getUserPhoto()
|
||
objUser = Users(l,"","","","",user[0],"","","","")
|
||
photo = objUser.getUserPhoto()
|
||
|
||
response.append({ 'username': user[0], 'host': user[1], 'photo': photo })
|
||
response.append({ 'username': user[0], 'host': user[1], 'photo': photo })
|
||
|
||
return json.dumps({ "teacher" : teacherData, "classroom" : request.args['classroom'][0], "students" : response })
|
||
return json.dumps({ "teacher" : teacherData, "classroom" : request.args['classroom'][0], "students" : response })
|
||
|
||
elif request.args['action'][0]=="delete":
|
||
h = Hosts(l,request.args['cn'][0],"","",request.args['group'][0],request.args['type'][0])
|
||
response = h.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getHostData":
|
||
h = Hosts(l,request.args['cn'][0],"","",request.args['group'][0],request.args['type'][0])
|
||
response = h.getHostData()
|
||
return json.dumps({"response" : response})
|
||
|
||
else: #add, modify
|
||
if request.args ['type'][0] == 'thinclient':
|
||
ip = ""
|
||
else:
|
||
ip = request.args ['ip'][0]
|
||
h = Hosts(l,request.args['name'][0],ip,request.args['mac'][0],request.args['group'][0],request.args['type'][0])
|
||
response = h.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0]=="delete":
|
||
h = Hosts(l,request.args['cn'][0],"","",request.args['group'][0],request.args['type'][0])
|
||
response = h.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
elif request.args['action'][0] == "getHostData":
|
||
h = Hosts(l,request.args['cn'][0],"","",request.args['group'][0],request.args['type'][0])
|
||
response = h.getHostData()
|
||
return json.dumps({"response" : response})
|
||
|
||
else: #add, modify
|
||
if request.args ['type'][0] == 'thinclient':
|
||
ip = ""
|
||
else:
|
||
ip = request.args ['ip'][0]
|
||
h = Hosts(l,request.args['name'][0],ip,request.args['mac'][0],request.args['group'][0],request.args['type'][0])
|
||
response = h.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
if command == "dhcp":
|
||
from Plugins.DHCP import DHCP
|
||
from Plugins.LdapConnection import LdapConnection
|
||
if request.args['action'][0] == "list":
|
||
|
||
#busqueda dhcp
|
||
search = l.search("cn=INTERNAL,cn=DHCP Config,dc=instituto,dc=extremadura,dc=es","dhcpOption=*",["dhcpOption"])
|
||
#obtengo valores de dhcpOPtion
|
||
#OJO: Hacer algo para que no haya desbordamiento de indices
|
||
dhcpOption = search[0][0][1]['dhcpOption']
|
||
subnet_mask = dhcpOption[0].replace('subnet-mask ','')
|
||
broadcast_address = dhcpOption[1].replace('broadcast-address ','')
|
||
routers = dhcpOption[2].replace('routers ','')
|
||
domain_name_servers = dhcpOption[3].replace('domain-name-servers ','')
|
||
domain_name = dhcpOption[4].replace('domain-name ','')
|
||
ntp_servers = dhcpOption[5].replace('ntp-servers ','')
|
||
log_servers = dhcpOption[6].replace('log-servers ','')
|
||
netbios_name_servers = dhcpOption[7].replace('netbios-name-servers ','')
|
||
netbios_node_type = dhcpOption[8].replace('netbios-node-type ','')
|
||
|
||
d = DHCP (self,subnet_mask,broadcast_address,routers,domain_name,ntp_servers,log_servers,netbios_name_servers,netbios_node_type)
|
||
|
||
print "Mascara de red: " + d.subnet_mask
|
||
print "Direccion de Broadcast: " + d.broadcast_address
|
||
#return json.dumps(response)
|
||
else:
|
||
h = Hosts(l,request.args['name'][0],request.args['ip'][0],request.args['mac'][0])
|
||
print request.args['name'][0]
|
||
response = h.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
from Plugins.DHCP import DHCP
|
||
from Plugins.LdapConnection import LdapConnection
|
||
if request.args['action'][0] == "list":
|
||
|
||
#busqueda dhcp
|
||
search = l.search("cn=INTERNAL,cn=DHCP Config,dc=instituto,dc=extremadura,dc=es","dhcpOption=*",["dhcpOption"])
|
||
#obtengo valores de dhcpOPtion
|
||
#OJO: Hacer algo para que no haya desbordamiento de indices
|
||
dhcpOption = search[0][0][1]['dhcpOption']
|
||
subnet_mask = dhcpOption[0].replace('subnet-mask ','')
|
||
broadcast_address = dhcpOption[1].replace('broadcast-address ','')
|
||
routers = dhcpOption[2].replace('routers ','')
|
||
domain_name_servers = dhcpOption[3].replace('domain-name-servers ','')
|
||
domain_name = dhcpOption[4].replace('domain-name ','')
|
||
ntp_servers = dhcpOption[5].replace('ntp-servers ','')
|
||
log_servers = dhcpOption[6].replace('log-servers ','')
|
||
netbios_name_servers = dhcpOption[7].replace('netbios-name-servers ','')
|
||
netbios_node_type = dhcpOption[8].replace('netbios-node-type ','')
|
||
|
||
d = DHCP (self,subnet_mask,broadcast_address,routers,domain_name,ntp_servers,log_servers,netbios_name_servers,netbios_node_type)
|
||
|
||
print "Mascara de red: " + d.subnet_mask
|
||
print "Direccion de Broadcast: " + d.broadcast_address
|
||
#return json.dumps(response)
|
||
else:
|
||
h = Hosts(l,request.args['name'][0],request.args['ip'][0],request.args['mac'][0])
|
||
print request.args['name'][0]
|
||
response = h.process(request.args['action'][0])
|
||
return json.dumps({"response" : response})
|
||
|
||
if command == "logout":
|
||
request.getSession().expire()
|
||
return json.dumps({"response" : "logout"})
|
||
|
||
request.getSession().expire()
|
||
return json.dumps({"response" : "logout"})
|
||
|
||
return
|
||
|
||
def response_fail(self, messages=None):
|
Exportar a: Unified diff
pasada versión de twisted a una rama