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
- 2495 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
-
- 406871
- 1
- Jul 5, 2015
Sin Respuesta
-
- 99
- 0
- Mar 19
-
- 65
- 1
- Feb 26
-
- 155
- 0
- Ene 30
-
- 611
- 0
- Nov 7, 2023
-
- 260
- 0
- Sep 19, 2023
-
- 286
- 0
- Ago 21, 2023
-
- 364
- 0
- May 14, 2023
-
- 324
- 0
- Abr 21, 2023
- ver todas
Actividad Reciente
Santiago2610 comentó hace 6 días
Acualizar ChoiceField en djangoSantiago2610 preguntó Mar 19
Acualizar ChoiceField en djangogonzalss preguntó Feb 26
Script /boot/ scrapingParkJo preguntó Ene 30
No me deja instalar Oracleelporfirio respondió Ene 10
Actualizar la imagen con los datos devuelto en un …ovedg preguntó Dic 31, 2023
Actualizar la imagen con los datos devuelto en un …Ehdez preguntó Nov 7, 2023
Necesito en wordpress un pluging que me calcule la…pedrourday preguntó Sep 19, 2023
Alternativas a ThreeJS y BabylonJS?pedrourday preguntó Ago 21, 2023
¿Que tecnologias y lenguajes me recomiendan?Fabio respondió Jul 11, 2023
plugin de efecto circular 3d en imagenes
Ultimas Preguntas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150460 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos