mirror of
https://gitlab.com/JKANetwork/powerfulcomputermanager.git
synced 2026-02-19 11:41:30 +01:00
Enable setting password. Some EXITCODE for api<->control checking.
This commit is contained in:
@@ -9,7 +9,7 @@ $UUID=(get-wmiobject Win32_ComputerSystemProduct).UUID
|
||||
|
||||
$exists = Invoke-RestMethod -Method Get -Uri "$server/get/computerexists?ComputerName=$computerName&UUID=$UUID"
|
||||
if ($exists.Result -eq "ERROR"){
|
||||
if ($exists.EXITCODE -eq '1'){
|
||||
if ($exists.EXITCODE -eq '3'){
|
||||
Write-Host "Computer outside database:" $computerName
|
||||
}else{
|
||||
Write-Host "Computer and UUID of $computerName doesn't match"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
server=http://miserver.dominio:3333
|
||||
resources=\\\\MISERVER\\REPOFOLDER
|
||||
lang=es
|
||||
lang=en
|
||||
@@ -5,6 +5,7 @@ import configparser
|
||||
import json
|
||||
import requests
|
||||
import subprocess, platform
|
||||
import hashlib #SHA256
|
||||
from translation import T
|
||||
|
||||
def ping(host):
|
||||
@@ -25,10 +26,11 @@ def sendmenudot(text,title,choices):
|
||||
return menu.split('.')[0]
|
||||
else:
|
||||
return menu
|
||||
## showchoicesapi, apiurl has to have all (Inlcuding server part)
|
||||
def showchoicesapi(text,title,apiurl,field='Name'):
|
||||
## showchoicesapi, suburl has to have params (NOT inlcuding server part)
|
||||
def showchoicesapi(text,title,suburl,field='Name'):
|
||||
global c_server
|
||||
try:
|
||||
jsonobj = json.loads(requests.get(apiurl).text)
|
||||
jsonobj = json.loads(requests.get(c_server+suburl).text)
|
||||
listitems = []
|
||||
for ite in jsonobj:
|
||||
listitems.append(ite[field])
|
||||
@@ -59,9 +61,10 @@ def sendsettoapi(suburl,goodtext): # Send a add/del/modify to API. Doesn't retur
|
||||
easygui.msgbox("Error inesperado","Error","Ok")
|
||||
return 1
|
||||
|
||||
def returnvalueapi(apiurl,field="Name"):
|
||||
def returnvalueapi(suburl,field="Name"):
|
||||
global c_server
|
||||
try:
|
||||
jsonobj = json.loads(requests.get(apiurl).text)
|
||||
jsonobj = json.loads(requests.get(c_server+suburl).text)
|
||||
return jsonobj[field]
|
||||
except:
|
||||
easygui.msgbox(msg='Error en la aplicación al consultar', title="Error", ok_button='OK')
|
||||
@@ -87,7 +90,6 @@ def menuprinc():
|
||||
mreports()
|
||||
|
||||
def mcomputers():
|
||||
global c_server
|
||||
menu = sendmenudot(T('Computers menu'),T('Select option'),['1.'+T('Add computer'),'2.'+T('Remove computer'),'3.'+T('Add computer to group'),'4.'+T('Computers list'),'5.'+T('Computer status')])
|
||||
|
||||
if menu == '1':
|
||||
@@ -95,32 +97,31 @@ def mcomputers():
|
||||
if easygui.ynbox("Nombre del equipo: '"+newcomputer+"'. ¿Seguro?",T('Add computer')):
|
||||
sendsettoapi("/add/computer?ComputerName="+newcomputer,"Equipo añadido a la base de datos")
|
||||
elif menu == '2':
|
||||
whatc = showchoicesapi("Seleccione equipo a borrar",T('Remove computer'),c_server+"/get/computers")
|
||||
whatc = showchoicesapi("Seleccione equipo a borrar",T('Remove computer'),"/get/computers")
|
||||
if whatc is not None and easygui.ynbox("Se va a borrar el equipo '"+whatc+"'. ¿Seguro?",T('Remove computer')):
|
||||
sendsettoapi("/del/computer?ComputerName="+whatc,T('Computer deleted'))
|
||||
elif menu == '3':
|
||||
m_addcomputergroup()
|
||||
elif menu == '4':
|
||||
showchoicesapi(T('Computers list'),T('Computers list'),c_server+"/get/computers")
|
||||
showchoicesapi(T('Computers list'),T('Computers list'),"/get/computers")
|
||||
elif menu == '5':
|
||||
computer = showchoicesapi(T('Select a computer'),T('Computer status'),c_server+"/get/computers")
|
||||
showchoicesapi(T('Cooks of computer')+' '+computer,T('Computer status'),c_server+"/get/cookpend?ComputerName="+computer+"&SeeAll=1")
|
||||
showchoicesapi(T('Cooks pending of computer')+' '+computer,T('Computer status'),c_server+"/get/cookpend?ComputerName="+computer)
|
||||
showchoicesapi(T('Groups of computer')+' '+computer,T('Computer status'),c_server+"/get/groups?ComputerName="+computer)
|
||||
computer = showchoicesapi(T('Select a computer'),T('Computer status'),"/get/computers")
|
||||
showchoicesapi(T('Cooks of computer')+' '+computer,T('Computer status'),"/get/cookpend?ComputerName="+computer+"&SeeAll=1",'CookName')
|
||||
showchoicesapi(T('Cooks pending of computer')+' '+computer,T('Computer status'),"/get/cookpend?ComputerName="+computer,'CookName')
|
||||
showchoicesapi(T('Groups of computer')+' '+computer,T('Computer status'),"/get/groups?ComputerName="+computer,'Name')
|
||||
elif menu is None:
|
||||
menuprinc()
|
||||
return
|
||||
mcomputers()
|
||||
|
||||
def mgroups():
|
||||
global c_server
|
||||
menu = sendmenudot(T('Groups menu'),T('Select option'),['1.'+T('Add group'),'2.'+T('Remove group'),'3.'+T('Add computer to group'),'4.'+T('Remove computer of a group'),'5.Listado de grupos','6.Listado de equipos de un grupo'])
|
||||
if menu == '1':
|
||||
newgroup = easygui.enterbox(T('New group name'),T('Add group'))
|
||||
if easygui.ynbox("Nombre del grupo: '"+newgroup+"'. ¿Seguro?",T('Add group')):
|
||||
sendsettoapi("/add/group?GroupName="+newgroup,"Grupo añadido a la base de datos")
|
||||
elif menu == '2':
|
||||
group = showchoicesapi("Lista de grupos. Selecciona uno para borrarlo",T('Remove group'),c_server+"/get/groups",'Name')
|
||||
group = showchoicesapi("Lista de grupos. Selecciona uno para borrarlo",T('Remove group'),"/get/groups",'Name')
|
||||
if group is not None and easygui.ynbox("Borrar grupo '"+group+"'. ¿Seguro?",T('Remove group')):
|
||||
sendsettoapi("/del/group?GroupName="+group,T('Group deleted'))
|
||||
elif menu == '3':
|
||||
@@ -128,10 +129,10 @@ def mgroups():
|
||||
elif menu == '4':
|
||||
m_delcomputergroup()
|
||||
elif menu == '5':
|
||||
showchoicesapi("Listado de grupos","Listado de grupos",c_server+"/get/groups",field='Name')
|
||||
showchoicesapi("Listado de grupos","Listado de grupos","/get/groups",field='Name')
|
||||
elif menu == '6':
|
||||
group = showchoicesapi("Lista de grupos","Listado de equipos de un grupo",c_server+"/get/groups")
|
||||
showchoicesapi("Lista de equipos del grupo "+group,"Listado de equipos de un grupo",c_server+"/get/computersgrp?GroupName="+group)
|
||||
group = showchoicesapi("Lista de grupos","Listado de equipos de un grupo","/get/groups")
|
||||
showchoicesapi("Lista de equipos del grupo "+group,"Listado de equipos de un grupo","/get/computersgrp?GroupName="+group)
|
||||
elif menu is None:
|
||||
menuprinc()
|
||||
return
|
||||
@@ -140,16 +141,16 @@ def mgroups():
|
||||
def mcooks():
|
||||
global c_server
|
||||
global c_resources
|
||||
menu = sendmenudot(T('Cooks menu'),T('Select option'),['1.Detalles de una receta','2.Renombrar receta','3.Añadir receta a un grupo','4.Eliminar receta de un grupo','5.Grupos de una receta'])
|
||||
menu = sendmenudot(T('Cooks menu'),T('Select option'),['1.Detalles de una receta','2.'+T('Rename cook'),'3.Añadir receta a un grupo','4.Eliminar receta de un grupo','5.Grupos de una receta'])
|
||||
if menu == '1':
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para ver sus datos","Detalles de una receta",c_server+"/get/cookall",'CookName')
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para ver sus datos","Detalles de una receta","/get/cookall",'CookName')
|
||||
if cook is not None:
|
||||
showchoicesapi("Lista de grupos de la receta "+cook,"Listado de grupos de una receta",c_server+"/get/grpcook?CookName="+cook)
|
||||
showchoicesapi("Lista de grupos de la receta "+cook,"Listado de grupos de una receta","/get/grpcook?CookName="+cook)
|
||||
jsonobj = json.loads(requests.get(c_server+'/get/statuscook?CookName='+cook).text)
|
||||
list = []
|
||||
s_err = 0
|
||||
s_com = 0
|
||||
s_lastrev = returnvalueapi(c_server+'/get/lastrevisioncook?CookName='+cook,"Revision")
|
||||
s_lastrev = returnvalueapi('/get/lastrevisioncook?CookName='+cook,"Revision")
|
||||
for ite in jsonobj:
|
||||
s_com = s_com + 1
|
||||
if ite['Error'] == 0:
|
||||
@@ -161,10 +162,10 @@ def mcooks():
|
||||
|
||||
easygui.choicebox("Detalles de equipos de la receta "+cook+"\nEquipos: "+str(s_com)+" Con errores: "+str(s_err)+'\nUltima revision: '+str(s_lastrev),"Detalles de una receta",list)
|
||||
elif menu == '2':
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para renombrarla. Si la receta no está en ningún grupo, se puede renombrar desde fuera.","Renombrar receta",c_server+"/get/cookall",'CookName')
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para renombrarla. Si la receta no está en ningún grupo, se puede renombrar desde fuera.",T('Rename cook'),c_server+"/get/cookall",'CookName')
|
||||
if cook is not None:
|
||||
newname = easygui.enterbox("Nombre de la nueva receta","Renombrar receta")
|
||||
if newname is not None and easygui.ynbox("Cambiar nombre de la receta '"+cook+"' por '"+newname+"'. ¿Seguro?","Renombrar receta"):
|
||||
if newname is not None and easygui.ynbox("Cambiar nombre de la receta '"+cook+"' por '"+newname+"'. ¿Seguro?",T('Rename cook')):
|
||||
sendsettoapi("/upd/cookname?CookName="+cook+"&CookNewName="+newname,"Receta cambiada de nombre")
|
||||
elif menu == '3':
|
||||
cook = easygui.enterbox(T('Name of the cook'),"Añadir receta a un grupo")
|
||||
@@ -172,15 +173,15 @@ def mcooks():
|
||||
if easygui.ynbox("Añadir la receta "+cook+" al grupo '"+group+"'. ¿Seguro?","Añadir receta a un grupo"):
|
||||
sendsettoapi("/add/cookgrp?CookName="+cook+"&GroupName="+group,"Receta añadida al grupo")
|
||||
elif menu == '4':
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para elegir un grupo de esa receta para borrar. Si la receta no está en ningún grupo, no saldrá.","Eliminar receta de un grupo",c_server+"/get/cookall",'CookName')
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para elegir un grupo de esa receta para borrar. Si la receta no está en ningún grupo, no saldrá.","Eliminar receta de un grupo","/get/cookall",'CookName')
|
||||
if cook is not None:
|
||||
group = showchoicesapi("Lista de grupos que tienen esa receta. Selecciona el grupo a quitar","Eliminar receta de un grupo",c_server+"/get/grpcook?CookName="+cook,'Name')
|
||||
group = showchoicesapi("Lista de grupos que tienen esa receta. Selecciona el grupo a quitar","Eliminar receta de un grupo","/get/grpcook?CookName="+cook,'Name')
|
||||
if group is not None and easygui.ynbox("Se va a quitar la receta "+cook+" del grupo "+group+". ¿Seguro?","Eliminar receta de un grupo"):
|
||||
sendsettoapi("/del/cookgrp?CookName="+cook+"&GroupName="+group,"Receta quitada del grupo")
|
||||
elif menu == '5':
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para elegir un grupo de esa receta para borrar. Si la receta no está en ningún grupo, no saldrá.","Eliminar receta de un grupo",c_server+"/get/cookall",'CookName')
|
||||
cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para elegir un grupo de esa receta para borrar. Si la receta no está en ningún grupo, no saldrá.","Eliminar receta de un grupo","/get/cookall",'CookName')
|
||||
if cook is not None:
|
||||
showchoicesapi("Lista de grupos que tienen esa receta. Selecciona el grupo a quitar","Eliminar receta de un grupo",c_server+"/get/grpcook?CookName="+cook,'Name')
|
||||
showchoicesapi("Lista de grupos que tienen esa receta. Selecciona el grupo a quitar","Eliminar receta de un grupo","/get/grpcook?CookName="+cook,'Name')
|
||||
elif menu is None:
|
||||
menuprinc()
|
||||
return
|
||||
@@ -188,22 +189,20 @@ def mcooks():
|
||||
mcooks()
|
||||
|
||||
def mreports():
|
||||
global c_server
|
||||
global c_resources
|
||||
menu = sendmenudot(T('Reports menu'),T('Select option'),['1.'+T('Computers list'),'2.'+T('Groups list'),'3.Equipos y recetas de un grupo','4.Grupos de una receta'])
|
||||
|
||||
if menu == '1': #Listado de equipos
|
||||
showchoicesapi(T('Computers list'),T('Computers list'),c_server+"/get/computers")
|
||||
showchoicesapi(T('Computers list'),T('Computers list'),"/get/computers")
|
||||
elif menu == '2': #Listado de grupos
|
||||
showchoicesapi(T('Groups list'),T('Groups list'),c_server+"/get/groups")
|
||||
showchoicesapi(T('Groups list'),T('Groups list'),"/get/groups")
|
||||
elif menu == '3':
|
||||
group = showchoicesapi(T('Groups list')+'. '+T('Select a group'),T('Groups list'),c_server+"/get/groups")
|
||||
showchoicesapi("Lista de equipos del grupo "+group,T('List of computers and cooks of a group'),c_server+"/get/computersgrp?GroupName="+group)
|
||||
showchoicesapi("Lista de recetas del grupo "+group,T('List of computers and cooks of a group'),c_server+"/get/cookgrp?GroupName="+group,'CookName')
|
||||
group = showchoicesapi(T('Groups list')+'. '+T('Select a group'),T('Groups list'),"/get/groups")
|
||||
showchoicesapi("Lista de equipos del grupo "+group,T('List of computers and cooks of a group'),"/get/computersgrp?GroupName="+group)
|
||||
showchoicesapi("Lista de recetas del grupo "+group,T('List of computers and cooks of a group'),"/get/cookgrp?GroupName="+group,'CookName')
|
||||
elif menu == '4':
|
||||
cook = showchoicesapi("Lista de recetas con grupo. Selecciona una para ver sus grupos","Listado de grupos de una receta",c_server+"/get/cookall",'CookName')
|
||||
cook = showchoicesapi("Lista de recetas con grupo. Selecciona una para ver sus grupos",T('List of groups of a cook'),"/get/cookall",'CookName')
|
||||
if cook is not None:
|
||||
showchoicesapi("Lista de grupos de la receta "+cook,T('List of groups of a cook'),c_server+"/get/grpcook?CookName="+cook)
|
||||
showchoicesapi("Lista de grupos de la receta "+cook,T('List of groups of a cook'),"/get/grpcook?CookName="+cook)
|
||||
elif menu is None:
|
||||
menuprinc()
|
||||
return
|
||||
@@ -211,22 +210,49 @@ def mreports():
|
||||
|
||||
|
||||
def m_addcomputergroup():
|
||||
whatc = showchoicesapi(T('Select computer to add to a group'),T('Add computer to group'),c_server+"/get/computers")
|
||||
whatc = showchoicesapi(T('Select computer to add to a group'),T('Add computer to group'),"/get/computers")
|
||||
if whatc is None:
|
||||
return
|
||||
whatg = showchoicesapi(T('Select group to be added'),T('Add computer to group'),c_server+"/get/groups")
|
||||
whatg = showchoicesapi(T('Select group to be added'),T('Add computer to group'),"/get/groups")
|
||||
if whatg is None:
|
||||
return
|
||||
sendsettoapi("/add/grpcomputer?ComputerName="+whatc+"&GroupName="+whatg,"Equipo añadido al grupo")
|
||||
|
||||
def m_delcomputergroup():
|
||||
computer = showchoicesapi("Seleccione equipo para buscar un grupo que borrar",T('Remove computer of a group'),c_server+"/get/computers")
|
||||
computer = showchoicesapi("Seleccione equipo para buscar un grupo que borrar",T('Remove computer of a group'),"/get/computers")
|
||||
if computer is None:
|
||||
return
|
||||
group = showchoicesapi(T('Select group to delete'),T('Remove computer of a group'),c_server+"/get/groups?ComputerName="+computer)
|
||||
group = showchoicesapi(T('Select group to delete'),T('Remove computer of a group'),"/get/groups?ComputerName="+computer)
|
||||
if group is None:
|
||||
return
|
||||
if easygui.ynbox("Quitar el equipo "+computer+" del grupo '"+group+"'. ¿Seguro?",T('Remove computer of a group')):
|
||||
sendsettoapi("/del/grpcomputer?ComputerName="+computer+"&GroupName="+group,"Equipo quitado del grupo")
|
||||
|
||||
menuprinc()
|
||||
|
||||
|
||||
# Check password before starting all
|
||||
pa = returnvalueapi("/check/password?Password=None",field="EXITCODE")
|
||||
if pa == "3": # No password stored yet
|
||||
passw = easygui.passwordbox(T('There is no password yet in PCM. Please set one below'),T('Set password'))
|
||||
passw2 = easygui.passwordbox(T('Confirm it'),T('Set password'))
|
||||
|
||||
if passw==passw2 and passw is not None: # Password match
|
||||
passha256 = hashlib.sha256(passw.encode()).hexdigest()
|
||||
re = returnvalueapi("/upd/password?NewPassword="+passha256,field="RESULT") # Create password in database
|
||||
if re=='OK': # All right. Start app
|
||||
menuprinc()
|
||||
else: # Fail. Not controlled
|
||||
easygui.msgbox(T('Error unespecified. App will exit'),T('Set password'))
|
||||
else: # Password not match
|
||||
easygui.msgbox(T('Password not match. App will exit'),T('Set password'))
|
||||
#Exit
|
||||
else: # There is a password
|
||||
passw = easygui.passwordbox(T('Enter password to start'),T('Enter password'))
|
||||
if passw is None:
|
||||
quit()
|
||||
passha256 = hashlib.sha256(passw.encode()).hexdigest()
|
||||
re = returnvalueapi("/check/password?Password="+passha256,field="EXITCODE") # Create password in database
|
||||
if re == '0': # Password is right
|
||||
menuprinc()
|
||||
else:
|
||||
easygui.msgbox(T('Password not match. App will exit'),T('Enter password'))
|
||||
@@ -53,7 +53,14 @@ def T_es(textid):
|
||||
'List of groups of a cook':'Listado de grupos de una receta',
|
||||
'Select computer to add to a group':'Seleccione equipo para añadir a un grupo',
|
||||
'Select group to be added':'Seleccione grupo a ser añadido',
|
||||
'Select group to delete':'Seleccione grupo a quitar'
|
||||
'Select group to delete':'Seleccione grupo a quitar',
|
||||
'Rename cook': 'Renombrar receta',
|
||||
'Set password':'Establecer contraseña',
|
||||
'There is no password yet in PCM. Please set one below':'No hay contraseña aún en PCM. Por favor, escriba una debajo',
|
||||
'Confirm it':'Confirmalo',
|
||||
'Password not match. App will exit':'Las contraseñas no coinciden. La aplicación se va a cerrar',
|
||||
'Enter password':'Introducir contraseña',
|
||||
'Enter password to start':'Introduzca la contraseña para empezar'
|
||||
}
|
||||
|
||||
return dict[textid]
|
||||
|
||||
Reference in New Issue
Block a user