Example #1
0
        /// <summary>
        /// 获取角色树形结构
        /// </summary>
        /// <param name="currentUser"></param>
        /// <param name="roles"></param>
        /// <returns></returns>
        public static IList <TreeNode> GetRoleTreeNote(OperatorUser currentUser, IList <Role> roles)
        {
            var pageQuery = new PageQuery <IDictionary <string, object>, Role>(currentUser);

            pageQuery.Condition = new Dictionary <string, object>();

            pageQuery.SetQueryAll();
            DependencyResolver.Resolver <IRoleService>().Query(pageQuery);

            if (roles == null)
            {
                return(pageQuery.Result.Select(m => new TreeNode()
                {
                    Text = m.RoleName, Value = m.Id.ToString()
                }).ToList());
            }
            else
            {
                return
                    (pageQuery.Result.Select(
                         m =>
                         new TreeNode()
                {
                    Text = m.RoleName, Value = m.Id.ToString(), Checked = roles.IsIdInList(m)
                })
                     .ToList());
            }
        }
Example #2
0
        public static List <TreeNode> GetOperateTree(OperatorUser currentUser, IList <OperatorUser> users)
        {
            var pageQuery =
                new PageQuery <IDictionary <string, object>, OperatorUser>(currentUser.IsAdmin ? null : currentUser);

            pageQuery.Condition = new Dictionary <string, object>();
            pageQuery.SetQueryAll();
            DependencyResolver.Resolver <IUserInfoService>().Query(pageQuery);
            if (users == null)
            {
                return(pageQuery.Result.Select(m => new TreeNode()
                {
                    Text = m.OperatorName, Value = m.Id.ToString()
                }).ToList());
            }
            else
            {
                return
                    (pageQuery.Result.Select(
                         m =>
                         new TreeNode()
                {
                    Text = m.OperatorName, Value = m.Id.ToString(), Checked = users.IsIdInList(m)
                })
                     .ToList());
            }
        }
Example #3
0
        /// <summary>
        /// 设置当前用户
        /// </summary>
        /// <param name="operatorUser"></param>
        internal void SetUser(OperatorUser operatorUser)
        {
            HttpContext.Current.Items[CurrentUserKey] = operatorUser;

            if (operatorUser != null)
            {
                log4net.LogManager.GetLogger
                    (typeof(HttpCurrentUserService)).DebugFormat("设置当前用户为{0}|{1}|{2}",
                                                                 operatorUser.OperatorName, operatorUser.Id, operatorUser.OperatorCode);
            }
        }
Example #4
0
        public IList <Role> GetRoles(OperatorUser operatorUser)
        {
            string sql =
                string.Format(
                    @" 
SELECT R.* FROM  Sys_RoleOperator ro
INNER JOIN  Sys_Operator O ON RO.OPERATORID = O.ID
INNER JOIN SYS_ROLE R ON R.ID = RO.ROLEID
WHERE r.SYSTEMNAME = '{0}' AND O.ID = {1} AND ro.DELETED <>1",
                    SysConfig.SystemName, operatorUser.Id);

            return(this.GetSession().CreateSQLQuery(sql).AddEntity("R", typeof(Role)).List <Role>());
        }
Example #5
0
        public void SaveNewProcHist(string oprComment, BaseEntity entity, OperatorUser oprOperatorUser, string oprAction, string stageDesc)
        {
            OprHist oprHist = new OprHist();

            oprHist.OprAction   = oprAction;
            oprHist.OprComment  = oprComment;
            oprHist.OprDateTime = DateTime.Now;
            oprHist.OprUser     = oprOperatorUser;
            oprHist.OprUsername = oprOperatorUser.OperatorName;
            oprHist.StageDesc   = stageDesc;
            oprHist.RequestId   = entity.Id;
            oprHist.RequestType = entity.GetType().FullName;
            this.SaveOrUpdate(oprHist);
        }
Example #6
0
 public void SaveNewProcHist(string oprComment, BaseEntity crmEntity, OperatorUser oprOperatorUser, string oprAction, string stageDesc)
 {
     this._commonRepository.SaveNewProcHist(oprComment, crmEntity, oprOperatorUser, oprAction, stageDesc);
 }
        public int DoLogin(string UserName, string Password)
        {
            decimal reserved = 0;
            decimal factor;
            decimal cashpool = 0;

            if (ChangeTracker.CurrentUser is AnonymousUser)
            {
                cashpool = WsdlRepository.GetBalance(StationRepository.GetUid(ChangeTracker.CurrentUser), out reserved, out factor) - reserved;
            }

            ClearEverythingAfterUser();

            SessionWS sessionId = WsdlRepository.OpenSession(StationRepository.StationNumber, false, UserName, Password, false);
            string    username  = sessionId.username;

            var lang = sessionId.default_language;

            string[] permissions = sessionId.permissions;
            string   role = sessionId.roleName, roleColor = sessionId.highlight_color;
            int      id = sessionId.account_id;

            if (TranslationProvider.CurrentLanguage != lang && lang != null)
            {
                TranslationProvider.CurrentLanguage = lang;
                Mediator.SendMessage(lang, MsgTag.LanguageChosenHeader);
                Mediator.SendMessage(lang, MsgTag.LanguageChosen);
            }

            if (sessionId.session_id == InvalidSessionID || sessionId.session_id == null)
            {
                var previousUser = ChangeTracker.CurrentUser;
                ClearEverythingAfterUser();
                OpenAnonymousSession(false, previousUser);
                return(0);
            }
            else if (permissions != null)
            {
                var user = new OperatorUser(sessionId.session_id)
                {
                    Username = UserName
                };
                user.Username    = user.Username.Trim(new Char[] { ' ', '@', '.' });
                user.AccountId   = id;
                user.RoleID      = GetRoleId(sessionId.role_id);
                user.Role        = role;
                user.RoleColor   = roleColor;
                user.Permissions = permissions;

                IdCardInfoItem[] cards = null;
                try
                {
                    cards = WsdlRepository.GetIdCardInfo(sessionId.account_id, Role.Operator);
                }
                catch (Exception)
                { }

                if (cards != null && cards.SingleOrDefault(c => c.active == "1") != null)
                {
                    user.CardNumber    = cards.Single(c => c.active == "1").number;
                    user.HasActiveCard = true;
                }
                else
                {
                    user.CardNumber    = null;
                    user.HasActiveCard = false;
                }

                user.PinEnabled           = sessionId.card_pin_enabled == 1;
                ChangeTracker.CurrentUser = user;
                return(1);
            }
            else
            {
                if (StationRepository.Active == 0)
                {
                    Mediator.SendMessage(new Tuple <string, string, bool, int>(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_STATION_LOCKED_BY_ADMIN).ToString(), "", false, 3), MsgTag.Error);
                    var previousUser = ChangeTracker.CurrentUser;
                    ClearEverythingAfterUser();
                    OpenAnonymousSession(false, previousUser);
                    return(1);
                }
                foreach (var ticket in TicketHandler.TicketsInBasket.ToSyncList().Where(x => x.TipItems.ToSyncList().Any(c => c.IsChecked)))
                {
                    TicketHandler.OnChangeStake("clear", ticket, ChangeTracker.CurrentUser.Cashpool);
                }
                var user = new LoggedInUser(id, sessionId.session_id, sessionId.balance.amount - sessionId.balance.reserved, sessionId.accountSystemSettings.user_deposit_limit_daily, sessionId.accountSystemSettings.user_deposit_limit_weekly, sessionId.accountSystemSettings.user_deposit_limit_monthly)
                {
                    Username = UserName
                };
                user.Permissions = permissions;
                if (!String.IsNullOrEmpty(sessionId.session_id))
                {
                    user.CardNumber = sessionId.cardNumber;
                }
                ChangeTracker.CurrentUser          = user;
                ChangeTracker.CurrentUser.Currency = StationRepository.Currency;
                // user.RoleID = roleId;
                user.Role      = role;
                user.RoleColor = roleColor;
                if (cashpool > 0)
                {
                    Mediator.SendMessage <decimal>(cashpool, MsgTag.AskAboutCashPool);
                }
                GetUserPinSettingFromProfile();
                var minLimit = ChangeTracker.CurrentUser.DailyLimit;
                if (ChangeTracker.CurrentUser.WeeklyLimit < minLimit)
                {
                    minLimit = ChangeTracker.CurrentUser.WeeklyLimit;
                }
                if (ChangeTracker.CurrentUser.MonthlyLimit < minLimit)
                {
                    minLimit = ChangeTracker.CurrentUser.MonthlyLimit;
                }
                var notificationText = TranslationProvider.Translate(MultistringTags.USER_LIMIT, minLimit, StationRepository.Currency);
                Mediator.SendMessage(notificationText, MsgTag.ShowNotification);
                Mediator.SendMessage(true, MsgTag.RefreshTicketDetails);

                if (sessionId.force_change_password)
                {
                    return(3);
                }
                else if (sessionId.password_reminder)
                {
                    return(2);
                }

                return(1);
            }
        }
Example #8
0
        public IList <Plug> GetPlugs(OperatorUser operatorUser)
        {
            IList <Role> roles = GetRoles(operatorUser);

            return(roles.SelectMany(m => this.GetPlugs(m)).Distinct().ToList());
        }
Example #9
0
 public IList <Role> GetRoles(OperatorUser operatorUser)
 {
     return(_rolePlugRepository.GetRoles(operatorUser));
 }