示例#1
0
        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());
        }