Alguna Ayuda xP

1342 visitas 7 respuestas

Weno... lo k pasa es que stoi haciendo un sistema de usuarios xDD ya tengo muchas partes hechas, pero ahora me llego una duda k no se como podria resolver ^^u

resulta k kiero un campo en la BD, donde tenga detallados varios permisos de usuario... por ejemplo, aprovar noticias, colaborar escribiendo reviews, etc.. pero presisamente para eso los permisos... para k solo unos pokos puedan xD

mi duda es como podria hacer esto, habia pensado en usar distintos campos en la Bd, por ejemplo: perm_noticias, perm_reviews, etc.. pero... si hay alguna forma mas facil XD

gracias de antemano

Respuestas

0 0

puedes hacer un solo campo en la tabla en la ke se registren los usuarios y dar diferentes permisos x ejemplo en numeros 0 = ninguno 1 = publicar niticias y asi lo k necesites luego seria comprobar t podrias montar una funcion extrayendo ese numero o cosas asi

por desde España

Registrado desde: 09 Nov 03
0 0

Reusa el sistema de permisos de POSIX ;-)

  • Imaginemos que tienes 6 acciones de edicion
  • Usamos "1" para dar ese permiso, y "0" para negarlo

Pongo permisos (cada bit seria una accion): 001110 (binario) --> 15 (octal)

En la tabla "usuarios" añade un campo int, y ahi metes ese permiso. A la hora de usarlo, lo desglosas, compruebas las acciones q puede hacer, y listo ;-)

por desde España

Registrado desde: 30 Dec 02
0 0

mmm... mas o menos como se haria eso de octal? o.O k si entendi lol k quisiste decir, pero.. no tengo idea como hacerlo ^^u

supongo k es algo como esto:

Noticias=0001; Reviews=0010;

pero... no estoy seguro xP

0 0

hagamos un ejemplo sencillo:

  • primer bit: mandar
  • segundo bit: comentar
  • tercer bit: editar

Si yo puedo mandar y comentar, tendre permisos 110 (binario), o lo que es lo mismo, 5 en octal.

Los numeros en Octal se hacen con 3 bits. La correspondencia seria asi: 00 -> 000 000 01 -> 000 001 [...] 07 -> 000 111 10 -> 001 000 [...] 77 -> 111 111

Tu puedes guardar directamente la cadena binaria pal tema de permisos. Yo te digo la idea de ponerlos en octal pq asi es mas sencillo de guardar.

por desde España

Registrado desde: 30 Dec 02
0 0

ya ma so menos entendi eso... a la hora de comprobar.. se comprobaria en octal o en binario? y k funcion se usuaria para esto?

0 0

Lo mejor es pasarlo a binario, asi tienes un array de char's (una cadena) con cada permiso en una posición.

Ahora, ¿como implementar esas conversiones? Mi idea inicial era octal, ya que los permisos en POSIX se hacen de esta forma. He estado buscando funciones de PHP, y no hay mucho de conversiones de binario a octal directamente; sin embargo, podriamos trabajar en decimal, que si hay funciones:

De esta manera, tu en la base de datos guardas un simple entero, que a la hora de mirar los permisos descompondras en binario.

por desde España

Registrado desde: 30 Dec 02
0 0

con base_convert podeis convertir de cualquier a cualquier base. Teneis la funcion comentada en esta misma web, con ejemplos, http://php-hispano.net/funciones

por desde España

Registrado desde: 31 Jul 03