public static Response<User> Post(this User request, Factory factory, IHttpRequest httpRequest) { if(request.IsDummyPassword()) throw HttpError.Unauthorized("password no vĂ¡lido"); var authRepo = httpRequest.TryResolve<IUserAuthRepository>(); if(authRepo==null) throw HttpError.NotFound("AuthRepository NO configurado"); var user= new UserAuth { FirstName= request.FirstName, LastName= request.LastName, Email= request.Email, UserName= request.UserName, DisplayName = request.FirstName +" "+ request.LastName }; user.Set<UserMeta>( new UserMeta{ Cargo= request.Cargo, Activo=request.Activo, ExpiresAt= request.ExpiresAt }); user = authRepo.CreateUserAuth(user, request.Password); request.Id= user.Id; request.SetDummyPassword(); List<User> data = new List<User>(); data.Add(request); return new Response<User>(){ Data=data }; }
public User CreateUser(CreateUser request) { var httpRequest = RequestContext.Get<IHttpRequest>(); var authRepo = httpRequest.TryResolve<IUserAuthRepository>(); if(authRepo==null) throw HttpError.NotFound("AuthRepository NO found"); var user= new UserAuth { FirstName= request.FirstName, LastName= request.LastName, Email= request.Email, UserName= request.UserName, DisplayName = request.FirstName +" "+ request.LastName }; user.Set<UserMeta>( new UserMeta{ Info= request.Info, IsActive=request.IsActive, ExpiresAt= request.ExpiresAt }); user = authRepo.CreateUserAuth(user, request.Password); User u = new User(); u.PopulateWith(user); return u; }
public static Response<User> Put(this User request, Factory factory, IHttpRequest httpRequest) { var userSession = httpRequest.GetSession(); if(!( userSession.HasRole(RoleNames.Admin) || userSession.HasPermission("User.update") )) throw HttpError.Unauthorized("Usuario no autorizado para actualizar"); var authRepo = httpRequest.TryResolve<IUserAuthRepository>(); if(authRepo==null) throw HttpError.NotFound("AuthRepository NO configurado"); var user= authRepo.GetUserAuth(request.Id.ToString()); if (!(request.Id== int.Parse(userSession.UserAuthId) || userSession.HasRole(RoleNames.Admin)) ) throw HttpError.Unauthorized("No puede cambiar los datos de otro usuario"); if(user == default(UserAuth)) throw HttpError.NotFound( string.Format("Usuario con Id:'{0}' NO encontrado",request.Id)); var newUser= new UserAuth { Id= request.Id, FirstName= request.FirstName, LastName= request.LastName, Email= request.Email, UserName= request.UserName, DisplayName= request.FirstName+" "+request.LastName, ModifiedDate= System.DateTime.Now, }; newUser.Set<UserMeta>( new UserMeta{ Cargo= request.Cargo, Activo=request.Activo, ExpiresAt= request.ExpiresAt }); if(request.Password.IsNullOrEmpty() || request.IsDummyPassword()){ factory.Execute(proxy=>{ proxy.Update<UserAuth>( newUser, ev=>ev.Where(q=>q.Id==request.Id). Update(f=> new { f.UserName, f.FirstName, f.LastName, f.Email, f.Meta, f.DisplayName, f.ModifiedDate })); }); } else user = authRepo.UpdateUserAuth(user, newUser,request.Password); request.SetDummyPassword(); List<User> data = new List<User>(); data.Add(request); return new Response<User>(){ Data=data }; }
public User Update(UpdateUser request) { var httpRequest = RequestContext.Get<IHttpRequest>(); var userSession = httpRequest.GetSession(); if(!( userSession.HasRole(RoleNames.Admin) || userSession.HasPermission("User.update") )) throw HttpError.Unauthorized("Update no allowed"); var authRepo = httpRequest.TryResolve<IUserAuthRepository>(); if(authRepo==null) throw HttpError.NotFound("AuthRepository NO found"); var user= authRepo.GetUserAuth(request.Id.ToString()); if (!(request.Id== int.Parse(userSession.UserAuthId) || userSession.HasRole(RoleNames.Admin)) ) throw HttpError.Unauthorized("Update no allowed (no admin)"); if(user == default(UserAuth)) throw HttpError.NotFound( string.Format("User Id:'{0}' NO found",request.Id)); var newUser= new UserAuth { Id= request.Id, FirstName= request.FirstName, LastName= request.LastName, Email= request.Email, UserName= request.UserName, DisplayName= request.FirstName+" "+request.LastName, ModifiedDate= DateTime.Now, }; newUser.Set<UserMeta>( new UserMeta{ Info= request.Info, IsActive=request.IsActive, ExpiresAt= request.ExpiresAt }); if(request.Password.IsNullOrEmpty()) { AuthRepoProxy.Execute(db=>{ db.UpdateOnly( newUser, ev=>ev.Where(q=>q.Id==request.Id). Update(f=> new { f.UserName, f.FirstName, f.LastName, f.Email, f.Meta, f.DisplayName, f.ModifiedDate })); }); } else { user = authRepo.UpdateUserAuth(user, newUser,request.Password); } User u = new User(); u.PopulateWith(newUser); return u; }