示例#1
0
        public void AssignPermissions(UserPermAdmDTO user, int loggedUserID)
        {
            ValidateAccess(loggedUserID);
            if (!(user.UserID > 0))
            {
                throw new Exception("Invalid user");
            }

            using (var trans = DbContext.Database.BeginTransaction())
            {
                try
                {
                    var perms = DbContext.UserPermission.Where(x => x.UserID == user.UserID);
                    DbContext.UserPermission.RemoveRange(perms);
                    DbContext.SaveChanges();

                    foreach (var perm in user.Permissions)
                    {
                        if (perm.IsAssigned)
                        {
                            DbContext.UserPermission.Add(new UserPermission()
                            {
                                PermissionID = perm.ID,
                                UserID       = user.UserID
                            });
                        }
                    }

                    DbContext.SaveChanges();
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw ex;
                }
            }
        }
示例#2
0
 public IActionResult AssignPermissions([FromBody] UserPermAdmDTO perms)
 {
     UserPermissionAdmService.AssignPermissions(perms, LoggedUserID);
     return(Ok());
 }