public void SetUser(JSPortalUser usr) { PortalUser newUser; if (!usr.PortalUserId.HasValue) { newUser = new PortalUser(); db.PortalUser.Add(newUser); } else { newUser = db.PortalUser.First(x => x.PortalUserId == usr.PortalUserId); } newUser.Name = usr.Name; newUser.UserName = usr.UserName; newUser.Password = string.IsNullOrEmpty(usr.Password) ? newUser.Password : Utils.GetMD5(usr.Password); newUser.Active = usr.Active; db.SaveChanges(); db.PortalUser2Part.RemoveRange(db.PortalUser2Part.Where(x => x.PortalUserId == newUser.PortalUserId)); foreach (var p in usr.Parts) { var part = new PortalUser2Part(); part.PortalUserId = newUser.PortalUserId; part.PortalPartId = p; db.PortalUser2Part.Add(part); } db.PortalUser2Right.RemoveRange(db.PortalUser2Right.Where(x => x.PortalUserId == newUser.PortalUserId)); foreach (var r in usr.Rights) { var rght = new PortalUser2Right(); rght.PortalUserId = newUser.PortalUserId; rght.UserRightId = r;// db.UserRight.First(x => x.Name == r).UserRightId; db.PortalUser2Right.Add(rght); } db.PortalUser2Group.RemoveRange(db.PortalUser2Group.Where(x => x.PortalUserId == newUser.PortalUserId)); foreach (var g in usr.Groups) { var grp = new PortalUser2Group(); grp.PortalUserId = newUser.PortalUserId; grp.PortalGroupId = g; db.PortalUser2Group.Add(grp); } db.PortalUser2Rubric.RemoveRange(db.PortalUser2Rubric.Where(x => x.PortalUserId == newUser.PortalUserId)); foreach (var r in usr.Rubrics) { var rub = new PortalUser2Rubric(); rub.PortalUserId = newUser.PortalUserId; rub.RubricId = r; db.PortalUser2Rubric.Add(rub); } db.SaveChanges(); }
public async Task <IActionResult> SetUser([FromBody] JSPortalUser user) { if (!this.HasRight("adminusers")) { return(Unauthorized()); } db.SetUser(user); this.SaveUserAction(this.GetUserAction("Запис на потребител", JObject.FromObject(user).ToString())); return(Ok()); }