/// <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()); } }
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()); } }
/// <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); } }
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>()); }
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); }
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); } }
public IList <Plug> GetPlugs(OperatorUser operatorUser) { IList <Role> roles = GetRoles(operatorUser); return(roles.SelectMany(m => this.GetPlugs(m)).Distinct().ToList()); }
public IList <Role> GetRoles(OperatorUser operatorUser) { return(_rolePlugRepository.GetRoles(operatorUser)); }