Administrar usuarios de Portal o ArcGIS Online

1081
8
02-27-2023 04:15 PM
OscarSolis1
Esri Contributor
2 8 1,081

Como todos sabemos algo que se mantiene en constante cambio son los usuarios, personas que entran o salen de una organización o que incluso por cosas de la vida no usan la herramienta. El asunto es que si existiera una forma de controlar este tipo de flujos en el momento pues la tarea puede ser muy sencilla, eliminando un usuario del Portal en el instante en el que este ya no trabaje en la organización, pero sabemos que no siempre es así. Recientemente me tocó enfrentarme a una situación de este tipo, donde en el Portal que tiene más de 800 usuarios, muchos de ellos ya no usaban el portal por las razones expuestas anteriormente, así que, me tomé la libertad de crear una herramienta que me ayudara a comprender el problema, bueno dos herramientas para ser exactos.

OscarSolis1_0-1677541450493.png

 

La primera herramienta que se usa es la de Obtener los usuarios esta nos ayudará a comprender la cantidad de usuarios, tipos, si se han logueado recientemente o si nunca lo hicieron y deberían ingresar los siguientes parámetros:

  1. URL del Portal
  2. Usuario (de un administrador)
  3. Contraseña de ese usuario
  4. La dirección y nombre de un archivo csv.

OscarSolis1_1-1677541632348.png

Quedando algo así como se indica en la imagen de arriba, con esto obtendremos un csv con información del nombre completo del usuario, usuario, nivel de usuario, rol, fecha del último acceso en texto y fecha.

OscarSolis1_2-1677541668082.png

Ya ahora deberíamos ser capaces de seleccionar o exportar únicamente los usuarios que debemos borrar (esto se hizo en consenso con el cliente), en este caso fueron todos los usuarios que no inician sesión en el ArcGIS Enterprise desde 2018 hasta diciembre de 2021. Así que se exporta una tabla csv que contenga únicamente el campo de usuario.

Por lo que la siguiente herramienta a usar es Eliminar Usuarios de Portal o ArcGIS Online. Esta herramienta por medio de una lista eliminará los usuarios que se encuentren en esa lista (csv), pero no sólamente eso, sino que el script revisa si el usuario tiene ítems y grupos. Si tiene grupos y son el dueño, reemplaza al dueño del grupo por el usuario que están usando que debería ser administrador, si de casualidad, el usuario es miembro del grupo y no el dueño lo que hará es agregar el usuario que estemos usando y luego borrará del grupo al usuario. Si el usuario tiene ítems, este revisará los ítems que tienen en la carpeta raíz y los pasará a la raíz del usuario, si están en una carpeta, lo que hará es crear una carpeta con el mismo nombre en el usuario que estemos usando y luego moverá los ítems a la carpeta correspondiente dentro del usuario que estemos usando.

Esta herramienta requiere lo siguiente:

  1. URL del Portal
  2. Usuario (de un administrador)
  3. Contraseña de ese usuario
  4. Csv con los usuarios a eliminar

Cabe destacar que como indico anteriormente solo se requiere la lista de usuarios, por lo que el csv debe lucir algo así:

OscarSolis1_3-1677542492973.png

La Herramienta una vez cargado lo requerido lucirá así:

OscarSolis1_4-1677542682580.png

Cabe destacar que no todo es a prueba de fallas y es que de los 52 usuarios que borré, tuve inconvenientes con 3 de ellos, básicamente con los grupos, en algunos casos no entiendo el por qué, pero me da error de que no puede cambiar el administrador del grupo y en uno de esos tres casos me dio error porque el usuario que estaba usando tenía un grupo con el mismo nombre que el usuario que quería eliminar. Sigo trabajando en eso, pero espero resolverlo. Además si tienen alguna sugerencia para mejorar la herramienta me lo pueden hacer saber.

Otra cosa muy importante que debo aclarar es que el toolbox que se encuentra adjunto es para versión 3 en adelante, si se tiene una versión anterior a 2.9, pues hay que configurar el toolbox, es por eso que también adjunto los scripts y puedan personalizarlo. Dejo acá un enlace que es una pequeña guía para configurar herramientas con versiones inferiores a 2.9

NOTA: actualicé el script porque tenía un error en un print, por lo tanto, ahora no debería de salir este error "TypeError: AddMessage() got an unexpected keyword argument 'end'"

Espero que les sea de utilidad la herramienta que les comparto.

Para más información pueden acceder a mi github

8 Comments
SergioFernandoMaltezRomero
New Contributor

Hola Oscar, lo que has desarrollado es justo lo que me solicitaron hace unos días, poder sacar un listado de usuarios y ver su ultima fecha de actividad porque lo que se requiere es dar de baja a los que no hacen uso del portal desde hace varios meses.

La herramienta Obtener los usuarios me funciono muy bien.

La Herramienta Eliminar Usuarios me dio error, es el siguiente:

===============================================================

Eliminar Usuarios de Portal o ArcGIS Online
=====================
Parámetros

URL del Portal o ArcGIS Online https://horus.energuate.com/portal
Usuario usuarioadministrador
Contraseña clave
CSV con la lista de los usuarios que se borrarán C:\usuarios\Bajas.csv
=====================
Mensajes

Tiempo de Inicio: jueves, 2 de marzo de 2023 11:18:10 a. m.
UF955632
Traceback (most recent call last):
File "<string>", line 30, in <module>
TypeError: AddMessage() got an unexpected keyword argument 'end'

Secuencia de comandos errónea (null)...
Falló al ejecutar (EliminarUsuarios).
Falló el jueves, 2 de marzo de 2023 11:18:11 a. m. (Tiempo transcurrido: 0.53 segundos)

===============================================================

Estaré haciendo algo mal ??.

 

Agradezco tu apoyo.

Sergio Maltez.

 

OscarSolis1
Esri Contributor

Hola @SergioFernandoMaltezRomero de casualidad me puedes pasar el csv que estás usando para borrar los usuarios, solamente para echarle un ojo y ver si es algo en la estructura de la tabla, lo otro sería si me puedes responder es si estás usando ArcGIS Pro para ejecutar la herramienta o lo estás haciendo desde python.

Saludos

SergioFernandoMaltezRomero
New Contributor

Hola @OscarSolis1, gracias por responder, para responder quizá no en orden que preguntas, pero si utilizo ArcGIS Pro, como te comente la herramienta que trae los usuarios funcionó excelente, pero la de Eliminación de Usuarios fue la del error.

Aqui te adjunto link al fichero .csv, 

https://drive.google.com/file/d/1KGI0WnLxkll8RFXK33_fnEXsddBdKZBv/view?usp=sharing

Igual aquí dejo el contenido del mismo

UF955632,
DC003545,
DR003113,
DC000466,
DC003651,

Nuevamente gracias.

OscarSolis1
Esri Contributor

Listo @SergioFernandoMaltezRomero revisé y fue un error mío en un print, disculpe los inconvenientes, ya actualicé el script y lo probé con una pequeña tabla que me compartieron por lo que los usuarios:

UF955632,
DC003545,
DR003113,
DC000466,
DC003651,

fueron eliminados sin inconvenientes.

SergioFernandoMaltezRomero
New Contributor

Hola @OscarSolis1 , muchas gracias, ya hice la prueba con 2 usuarios adicionales y me funciono, te felicito y agradezco mucho.

OscarSolis1
Esri Contributor

Para eso estamos, más bien gracias a usted por usarlo y avisarme del inconveniente

SergioMaltez
New Contributor

Hola Oscar, te escribo de nuevo porque el día de hoy 14/09/2023 con La herramienta Obtener los usuarios que me proporcionaste he tenido el siguiente problema y me da el siguiente error.

Traceback (most recent call last):
File "<string>", line 35, in <module>
File "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\ufffd' in position 3: character maps to <undefined>

escribe como 240 registros en el fichero .csv, pero no termina de colocar el resto de usuarios para un informe que generamos mensualmente.

 

Me puedes ayudar.

Cualquier cosa, me puedes contactar también al correo de oficina: smaltez@energuate.com, por si requieres algún intercambio de información mas privada.

 

OscarSolis1
Esri Contributor

Hola @SergioMaltez tuve el mismo problema efectivamente con su portal, el error se da porque hay unos usuarios que crearon me imagino que usando el procedimiento de los archivos CSV, lo cual no está mal, pero muchas veces pasa que en los csv los caracteres como  "´" o "ñ" se descompone el formato que en nuestra área es UTF-8 y trata de convertirlo en un ASCI y pues no es lo mismo y pasan estas cosas.

OscarSolis1_0-1695048571253.png

Te estaré enviando por correo la lista que logré obtener de los usuarios al día de hoy, también el asunto es que en toolbox desde ArcGIS Pro siempre va a dar ese error porque trata de convertir ese dato que no entiende, mi workaround fue ejecutarlo directamente como script y no desde el Pro donde trata de convertir la información. Otra solución es encontrar esos dos datos con esos caracteres y cambiarlos por las letras con tildes o eñes según corresponda. De esa forma desde ArcGIS Pro no se caería el proceso.

Otra opción que estoy viendo es tratar de decirle en el ArcGIS Pro que no trate de resolver eso como si fuera UTF-8 y lo deje tal cual. De todas formas te estaré enviando el script con el que corrí la herramienta y te explico como ejecutarlo directamente desde script y no desde toolbox.

 

Saludos