Estoy desarrollando una aplicación en Sails.js, donde tengo dos tipos de usuarios; usuarios normales (que deberían poder ver su propio perfil) y administradores (que deberían poder ver/editar/eliminar el perfil de todos los usuarios). Para la autenticación, he seguido este ejemplo .
Actualmente, estoy usando los planos para acceder directamente a esta información a través de una vista /views/user/show/userID , por ejemplo, /views/user/show/ + user.id , donde la vista muestra información basada en el ID de usuario proporcionado (por ejemplo, <%= user.name %> Actualmente, cualquiera puede acceder a cualquier perfil debido a esto.
Necesito limitar el acceso para que un usuario "normal" solo tenga acceso a su propio perfil, así como no pueda editar/eliminar a otros usuarios.
No estoy seguro de cómo hacer esto exactamente, y he intentado usar rutas personalizadas, sin éxito.
Cualquier sugerencia/respuesta será muy apreciada.
Puede usar una política (es decir isAdmin.js ) donde verifica si el usuario tiene un rol de usuario de "administrador" y, si no, puede devolver un código de error "prohibido".
Luego, en su config/policies.js puede asociar la política específica isAdmin.js a su método api.
Otro enfoque válido podría ser definir una política isProfileOwner.js donde verifique si el usuario que envió la solicitud es el propietario del perfil en el que desea operar.
Espero que esto pueda ayudarte