• Publicidad

Agregando funcionalidades extras

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Agregando funcionalidades extras

Notapor zinwandago » 2007-04-26 10:25 @475

Hola,que tal!
Pues empiezo usando el script CGI de ejemplo de ésta web; el de crear usuarios con sus password generadas con la función crypt de Perl; he añadido nuevas funcionalidades con el permiso del autor de dicho script (espero no se ofenda). Las funcionalidades que he añadido son las de enviar por email al usuario que se ha registrado su nueva password generada por el sistema, comprobar antes que el usuario ha introducido todos los campos correctamente (no vacíos y email correctamente).
Una vez hecha esta primera parte me gustaría añadir al script la funcionalidad de identificación del usuario según archivo de usuario:password:email. Y si el usuario existe el que éste pueda crear sus carpetas propias en el sistema por ejemplo:
- LOPEZ se registra correctamente y se almacena en archivo de usuarios (prácticamente lo que hace el script). ( Lo tengo echo).
- LOPEZ se identifica en el sistema. (Lo tengo casi echo).
- LOPEZ crea una carpeta en su carpeta creada al darse de alta,es decir, al darse de alta se crea la carpeta C:\usuarios\LOPEZ\primera_carpeta


Si alguien pudiera orientarme en cómo poder hacer ésto, me refiero a la última funcionalidad que deseo ponerle al script (creación de carpetas, dentro de la carpeta personal creada para cada usuario).


No sé si me han entendido lo que intento conseguir hacer, si no es así responderé plácidamente.

Un saludo.-
zinwandago
Perlero nuevo
Perlero nuevo
 
Mensajes: 35
Registrado: 2007-04-24 12:06 @545

Publicidad

Podríamos comenzar por...

Notapor zinwandago » 2007-04-26 10:34 @482

Pienso que podríamos comenzar por una función que cree para cada usuario que se registre correctamente su propia carpeta en el sistema, en el lugar que el administrador desee, por ejemplo

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  $path_carpetas='/temp/carpetasdeusuario/';
  ...
  sub carpeta_personal{
        #Creamos una carpeta con el nombre del usuario por ejemplo.
        #Dentro de la ruta $path_carpetas

  };
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Esta función se llamaría desde la función crear_usuario, es decir cuando se registra correctamente un usuario; o mejor justo después de crear al usuario.

¿Entendéis lo que quiero hacer?
zinwandago
Perlero nuevo
Perlero nuevo
 
Mensajes: 35
Registrado: 2007-04-24 12:06 @545

Notapor explorer » 2007-04-26 11:24 @517

Yo sí lo entiendo... pero has de tener en cuenta que el cgi lo va a ejecutar el usuario que ejecuta el servidor web, por lo que hay que tener en cuenta si ese usuario tiene permiso para realizar operaciones de ficheros en el directorio donde queremos hacerlas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor zinwandago » 2007-04-26 12:00 @542

Hola amigo explorer, si exacto; teniendo en cuenta que el usuario tiene permisos para poder crear carpetas en la ruta que le especefiquemos antes. Como podría hacerlo, que instrucciones puedo poner.
El usuario se econtraria con una especie de menu,con tres botones crear,borrar o modificar;antes insertaria el nombre de la carpeta y despues seleccionaria la opcion elegida. Si es crear por ejemplo,crea una carpeta en su carpeta personal creada al ser dado de alta. Puede funcionar mkdir?
zinwandago
Perlero nuevo
Perlero nuevo
 
Mensajes: 35
Registrado: 2007-04-24 12:06 @545

Notapor explorer » 2007-04-26 17:54 @787

mkdir es para crear subdirectorios, claro, pero el usuario web no podrá hacerlo en el directorio si EL no tiene permisos para hacerlo.

Una forma de resolverlo es dando como grupo propietario de la carpeta contenedora a todo el árbol de directorios del usuario, al grupo del usuario web. Y dar permiso de escritura a ese grupo.

Algo así como
Código: Seleccionar todo
chown www-data /temp/carpetasdeusuario/
chmod 775 /temp/carpetasdeusuario/

De este modo, el usuario web (que pertenece al grupo www-data), podrá escribir en ese directorio.

Otra opción sería que el script adoptara la personalidad del usuario final, algo que es desde luego mucho más deseable. Lo malo es que no sé cómo se hace eso... creo que es con el suexec del Apache, pero como nunca lo he probado, pues no puedo asegurártelo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2007-04-27 11:56 @538

He encontrado un módulo que hace algo parecido. Lo puedes leer para inspirarte: CGI::FileManager.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado