/** * Metodo responsavel por verificar se o usuario possui registro para acesso ao web service * returns User Caso o login e senha passado seja valido * exception SecurityException Caso o login e senha nao seja valido */ public static User Login(User user) { using (var db = new ArrecebaWSDb()) { var query = from u in db.Users where u.Login.Equals(user.Login) where u.Password.Equals(user.Password) select u; List<User> list = query.ToList<User>(); if (list.Count > 0) { user = list.ElementAt(0); user.DateLastLogin = DateTime.Now; db.Entry(user).State = EntityState.Modified; db.SaveChanges(); return user; } else { throw new SecurityException("Usuario ou senha invalidos"); } } }
/** * Método responsavel por verificar se o usuario passado possui permissao para acessar um determinado servico * * O servico e identificado automaticamente atraves do metodo GetCalledMethod da classe Util * returns boolean * exception SecurityException Caso o usuario nao possua acesso */ public static bool HaveAccess(User user) { using (var db = new ArrecebaWSDb()) { string Module = null; string Method = null; Util.GetCalledMethod(out Method, out Module); Service service = (from s in db.Services where s.Method.Equals(Method) where s.Module.Class.Equals(Module) select s).SingleOrDefault(); if (service == null) throw new SecurityException("Serviço não configurado!"); var query = from u in db.Users join p in db.UserProfiles on u.UserProfile.UserProfileId equals p.UserProfileId where p.Services.Any(item => item.ServiceId == service.ServiceId) where u.UserId.Equals(user.UserId) select u; List<User> list = query.ToList<User>(); if (list.Count > 0) { return true; } else { throw new SecurityException("Seu usuario nao possui permissao para acessar esta funcionalidade do sistema"); } } }
public UserProfile[] ListUserProfile(int ClientId) { ArrecebaWSDb db = new ArrecebaWSDb(); return db.UserProfiles.Where(u => u.ClientId == ClientId).ToArray(); }
public Client[] ListClient() { ArrecebaWSDb db = new ArrecebaWSDb(); return db.Clients.ToArray(); }