Hola, estoy usando Laravel 4 y uso los procedimientos de laravel para logearme, osea uso Auth, sin embargo el sistema que estoy realizando debe contar con logeo para adiministradores, o usuarios del sistema (modifican productos, etc, etc) y logeo tambien para usuarios normales para realizar compras.
Pero obviamente tener registros de administradores y usuarios normales en la misma tabla es una mala practica. Que es lo que deberia hacer en este caso?
Gracias
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Logeo con 2 tablas en Laravel (Auth)
- preguntó
- Web
- 2504 Vistas
- 1 Respuestas
- solucionada
1 Respuesta
Hola @christian_avalos, al crear dos tablas para usuarios como bien dices no sería una buena práctica, te doy una mejor forma de manejar a tus usuarios, puedes crear un sistema de permisos y grupos de esta forma asignamos a los usuarios un grupo que cuenta con varios permisos, llamemos a las tablas: permissions
, groups
y group_permission
usuarios
contendra una columna para el grupo o bien una tabla que haga de referencia entre los usuarios y los grupos.
id (int) | group_id (int) | username (varchar) | email (varchar)
1 1 | christian_avalos | [email protected]
groups
contendrá a los grupos de usuario, un nombre y una descripción (opcional), su estructura podría ser:
id (int) | name (varchar) | description (varchar)
1 Administrador ...
2 Regular ...
permissions
contendra los permisos como variables en camel case y una descripcion (opcional)
id (int) | name (varchar) | description (varchar)
1 can_modify_products | puede modificar productos
2 can_shop_products | puede comprar productos
group_permission
contendra la relación entre los grupos y los permisos así como un campo que especifique si esta permitido ese permiso, su estructura puede ser la siguiente:
group_id (int) | permission_id (int) | allowed (tinyint)
1 | 1 | 1
1 | 2 | 1
2 | 1 | 0
2 | 2 | 1
de modo que tendrias en laravel los modelos User, Group y Permission
el modelo Group puede contener lo siguiente:
public function permissions()
{
return $this->belongsToMany('permission');
}
public function hasPermission($permission)
{
return in_array($permission, array_fetch($this->permissions->toArray(), 'name'));
}
el modelo User lo siguiente:
public function group()
{
return $this->belongsTo('Group');
}
con esto puedes manejar a tus usuarios de mejor manera.
$user = User::find(1);
if( $user->group->id == 1 )
{
// el usuario es administrador
}
if( $user->group->hasPermission('can_modify_product') )
{
// el usuario puede modificar productos
}
if( $user->group->hasPermission('can_shop_products') )
{
// el usuario puede hacer compras a productos
}
saludos!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 407163
- 1
- Jul 5, 2015
Sin Respuesta
-
- 179
- 0
- Mar 19
-
- 94
- 2
- Feb 26
-
- 1197
- 0
- Nov 7, 2023
-
- 308
- 0
- Sep 19, 2023
-
- 310
- 0
- Ago 21, 2023
-
- 395
- 0
- May 14, 2023
-
- 364
- 0
- Abr 21, 2023
-
- 449
- 0
- Mar 31, 2023
- ver todas
Actividad Reciente
ArtEze respondió hace 4 días
Alguien sabe, no me ignorenArtEze seleccionó una respuesta hace 4 días
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió hace 4 días
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó hace 4 días
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió hace 4 días
No me deja instalar OracleArtEze respondió hace 4 días
Formulario que guarde los datos de un jsonArtEze comentó hace 4 días
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en djangoSantiago2610 preguntó Mar 19
Acualizar ChoiceField en djangogonzalss preguntó Feb 26
Script /boot/ scraping
Ultimas Preguntas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150470 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos