示例#1
0
        public EbMqResponse Post(SaveRoleMqRequest request)
        {
            if (request?.UserIdsToUpdate == null)
            {
                return(MqResponse);
            }

            foreach (int uid in request.UserIdsToUpdate.Distinct())
            {
                if (uid <= 0)
                {
                    continue;
                }

                string uAuthId = request.SolnId + ":" + uid + ":";
                User   OldUser = this.Redis.Get <User>(uAuthId + "uc");
                if (OldUser != null)
                {
                    UpdateRedisAndNotifyUser(OldUser, "uc", request);
                }

                OldUser = this.Redis.Get <User>(uAuthId + "mc");
                if (OldUser != null)
                {
                    UpdateRedisAndNotifyUser(OldUser, "mc", request);
                }
            }
            return(MqResponse);
        }
示例#2
0
        private void UpdateRedisAndNotifyUser(User OldUser, string Wc, SaveRoleMqRequest request)
        {
            try
            {
                IEbConnectionFactory factory = new EbConnectionFactory(request.SolnId, Redis);
                User NewUser = User.GetUserObject(factory.DataDB, OldUser.UserId, Wc, null, null);
                OldUser.Permissions  = NewUser.Permissions;
                OldUser.Roles        = NewUser.Roles;
                OldUser.RoleIds      = NewUser.RoleIds;
                OldUser.UserGroupIds = NewUser.UserGroupIds;
                this.Redis.Set <IUserAuth>(request.SolnId + ":" + OldUser.UserId + ":" + Wc, OldUser);

                this.ServiceStackClient.BearerToken     = request.BToken;
                this.ServiceStackClient.RefreshToken    = request.RToken;
                this.ServiceStackClient.RefreshTokenUri = Environment.GetEnvironmentVariable(EnvironmentConstants.EB_GET_ACCESS_TOKEN_URL);
                this.ServiceStackClient.Post <NotifyByUserIDResponse>(new NotifyByUserIDRequest
                {
                    Link        = "/UserDashBoard",
                    Title       = $"Your roles was changed successfully",
                    UsersID     = OldUser.UserId,
                    User_AuthId = OldUser.AuthId,
                    BToken      = request.BToken,
                    RToken      = request.RToken
                });

                NotifyByUserAuthId(request.BToken, request.RToken, OldUser.AuthId, "User role changed successfully", "cmd.UpdateUserMenu");
            }
            catch (Exception ex)
            {
                Console.WriteLine("user role changes-send notification" + ex.Message + ex.StackTrace);
            }
        }