-
Notifications
You must be signed in to change notification settings - Fork 0
/
agregaUsuarioEnAdmin.py
90 lines (76 loc) · 3.2 KB
/
agregaUsuarioEnAdmin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
from __future__ import print_function
from dataclasses import dataclass
from operator import concat
import os.path
import consultaSistema
from tkinter import filedialog as fd #Libreria para escoger archivo
import xlrd
import csv
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
# If modifying these scopes, delete the file token.json.
SCOPES = ['https://www.googleapis.com/auth/admin.directory.user',
'https://www.googleapis.com/auth/admin.directory.group',
'https://www.googleapis.com/auth/admin.directory.orgunit']
def agregarIndiv(name, familyName, mail, altMail, unitOrgPath):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
service = build('admin', 'directory_v1', credentials=creds)
if (consultaSistema.consultaAlumno(mail)==False):
try:
newUserInfo={
"name": {
"familyName": familyName,
"givenName": name
},
"password": "primer.password-2023",
"primaryEmail": mail,
"changePasswordAtNextLogin": True,
"orgUnitPath": "/"+unitOrgPath,
"recoveryEmail": altMail
}
#print("Usuario creado")
#print(newUserInfo)
usuario=service.users().insert(body=newUserInfo).execute()
print("Se registró a: "+name+" "+familyName+" en la unidad /"+unitOrgPath)
except:
print("No se pudo registrar a "+mail)
else:
print("Ya existe")
def agregarLote(path):
#creds = Credentials.from_authorized_user_file('token.json', SCOPES)
#service = build('admin', 'directory_v1', credentials=creds)
try:
dataUsuario=xlrd.open_workbook(path)
hojaData=dataUsuario.sheet_by_index(0)
try:
columnas=hojaData.nrows
print(columnas)
for i in range (1, columnas):
nombre=(str(hojaData.cell_value(i,0)))
apellido=(str(hojaData.cell_value(i,1)))
correo=(str(hojaData.cell_value(i,2)))
orgUnit=(str(int(hojaData.cell_value(i,3))))
recovery=(str(hojaData.cell_value(i,4)))
agregarIndiv(nombre, apellido, correo, recovery, orgUnit)
except:
print("Error en las columnas de información")
except:
print("Error en la dirección o tipo de dato")
def agregar():
opcion = int(input("""
1. Agregar usuario individual
2. Agregar desde archivo
Ingrese un numero: """))
if opcion == 1:
nombre=input("Ingrese nombres ")
apellidos=input("Ingrese apellidos ")
correo=input("Ingrese correo: ")
correoAlt=input("Ingrese un correo alternativo ")
uniOrg=input("Ingrese unidad organizativa a la que pertenece: ")
agregarIndiv(nombre, apellidos, correo, correoAlt, uniOrg)
elif opcion==2:
ruta = fd.askopenfilename()#abre explorador de archivos para elegir ruta
print(ruta)
agregarLote(ruta)