Pregunta

En primer lugar, gracias por el interés en mi tema. Creo que esta pregunta es fácil.

Tengo una relación creada en Laravel. Mi tabla de usuarios 'representa a los usuarios que pueden iniciar sesión en mi sistema . La tabla My 'Modules' representa los módulos a los que el usuario registrado puede acceder . Entonces, me gustaría verificar si el usuario registrado actual de tiene acceso al módulo solicitado .

Por ejemplo, el usuario intenta acceder a la URL: laravel.com/blog/Insert Pero el usuario no tiene permisos para este módulo, por lo que el sistema verifica las relaciones y devuelve si el usuario puede continuar en esta página o no. Creo que esta validación se puede hacer en el método __Construct de los controladores.

Mis tablas: 'Usuarios', 'Módulos' y 'Users_Modules'

He intentado algo como esto en mi modelo , pero no hay éxito. El $ ID representa el ID del Módulo:

public static function getUser($id)
{
    $module = Modules::where('id', '=', $id)->first();

    return $module->users;
}

My usuarios modelo modelo:

public function modules()
{
    return $this->belongsToMany('Modules', 'users_modules', 'user_id', 'module_id');
}

y mis módulos relación:

public function users()
{
    return $this->belongsToMany('User', 'users_modules', 'module_id', 'user_id');
}

¿Cómo puedo hacer eso? ¡Gracias por todos los que me ayudan! :)

¿Fue útil?

Solución 2

Solved the problem using Entrust for Laravel. Thanks all those who helped me!

Link for Entrust:

https://github.com/Zizaco/entrust

Otros consejos

La forma de hacerlo es crear un filtro de ruta personalizado en app/filters.php que comprueba para ver si el usuario es miembro del módulo en cuestión.

Eche un vistazo a los docs aquí en particular la sección en la especificación de parámetros de filtro, quedebe ir a ir en la dirección correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top