Olá
Estou desenvolvendo este projeto em MVC, que deverá ter muitos usuários, porém apenas um database.
Eu preciso achar a melhor forma de filtrar e controlar os dados por usuário, e isto está fogo...
Qual a melhor estratégia para isso ? Adicionar uma "clausula where" na classe REPOSITORY e na DAO? isso é errado, mas funciona.
Obs: Nas minhas tabelas do banco eu tenho uma coluna OwnerID que determina quais usuários podem acessar aquele registro.
public class Repository<T> : IRepository<T> where T : BaseEntity
{
private readonly SmartContext _context;
private DbSet<T> _entity;
public Repository(SmartContext context)
{
this._context = context;
_entity = context.Set<T>();
}
public int Count(int ownerID) ///
{
return this._entity.Where(a => a.OwnerID == ownerID).Count();
}
}
E na minha classe DAO
public class MovimentacaoDAO<T> : IServices<T> where T : BaseEntity
{
private IRepository<T> _repository;
private SmartContext _context;
public MovimentacaoDAO(SmartContext context, IRepository<T> repository)
{
this._repository = repository;
this._context = context;
}
public int Count(int ownerID)
{
return _repository.Count(ownerID);
}
}
Não sei se a CLASSE REPOSITORY deveria ter esta responsabilidade, ou seja, filtrar o OwnerID
Como será que as empresas como, contaazul, zoho, fazem, ou seja, você entra cria um novo usuário e tem acesso a parte das informações, mesmo que estejam dentro do mesmo banco de dados...
Obrigado