Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Relação entre os modelos

Olá professor

Tenho uma dúvida que vai além do escopo das video-aulas, mas se você puder me ajudar ficarei muito grato.

Estou com um projeto usando o MEAN-Stack e precisava, de algum modo, limitar o acesso das informações por usuários específicos. O projeto é simples: cada usuário do sistema pode criar suas próprias festas, porém não sei como fazer essa relação usando o mongoose.

Não mudei muita coisa do que foi passado nas aulas, e no momento meu código se encontra dessa forma;

models/usuario.js

var mongoose = require('mongoose');

var schema = mongoose.Schema({

    nome: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true,
        unique: true
    },
    senha: {
        type: String,
        required: true
    }
});

mongoose.model('Usuario', schema);

models/evento.js

var mongoose = require('mongoose');

var schema = mongoose.Schema({

    nome: {
        type: String,
        required: true
    },
    url: {
        type: String,
        required: true
    },
    data:{
        type: Date,
        required: true
    }
});

mongoose.model('Evento', schema);

Na atual situação todos os usuários tem acesso a todas as festas/eventos, precisava que cada usuário tivesse acesso aos eventos que forem criados por ele. Se puder me dar uma luz...

Desde já agradeço a atenção

5 respostas

Basta sempre adicionar um filtro em suas consultas levando em consideração o usuário logado. Aliás essa solução é usada há séculos. É a mesma solução que você aplicaria em uma app web tradicional, só fazer o mesmo em SPA.

Lembre-se que a cada requisição você tem acesso ao usuário autenticado na sua api.

Clareou a ideia ou ainda continua nebulosa?

Entendi...

Isso implica que eu mude algo nos schemas do mongoose?

Pensando de uma forma relacional eu teria uma chave primária em usuário e uma chave estrangeira em evento, para relacionar os dois. É necessário colocar algum campo nos schemas do mongoose?

solução!

Toda dado que você salvar terá que gravar o usuário com ele caso queria filtrar pelo usuário.

Já tenho uma visão do que fazer.

Muito Obrigado Flávio.