/// <summary> /// 按用户的用户组 取出对该用户的设置 /// </summary> /// <param name="action"></param> /// <param name="userId"></param> /// <returns></returns> public PointActionItem GetPointActionItem(string action, int userId) { PointActionItemCollection items = GetPointActionItems(action); if (items.Count == 0) { return(null); } if (items.Count > 1) { User user = UserBO.Instance.GetUser(userId); if (user == null) { return(null); } UserRoleCollection roles = user.Roles; for (int i = 1; i < items.Count; i++) { foreach (UserRole role in roles) { if (role.RoleID == items[i].RoleID) { return(items[i]); } } } } return(items[0]); }
/// <summary> /// Save user roles to persistent storage /// </summary> /// <param name="userName"></param> /// <param name="values"></param> /// <returns>Error message, if any</returns> public string SaveUserRole(string userName, List <object> values) { var error = string.Empty; var userRoleList = UserRoleCollection.GetUserRoleERList(userName); // Update user roles. foreach (var item in userRoleList) { var contains = values.Any(p => (string)p == item.FkRole); item.Selected = contains; } try { userRoleList = userRoleList.Save(); } catch (ValidationException ex) { var message = new StringBuilder(); message.AppendFormat("{0}<br/>", ex.Message); error = message.ToString(); } catch (DataPortalException ex) { error = ex.BusinessException is SqlException ? ex.Message : $"Ukjent feil:\r\n{ex.BusinessException.Message}"; } catch (Exception ex) { error = ex.Message; } return(error); }
/// <summary> /// 是否需要输验证码 /// </summary> /// <param name="actionType"></param> /// <returns></returns> public static bool HasValidateCode(string actionType) { foreach (ValidateCode tempValidateCode in AllSettings.Current.ValidateCodeSettings.ValidateCodes) { if (string.Compare(tempValidateCode.ActionType, actionType, true) == 0) { if (tempValidateCode.Enable == false) { return(false); } if (tempValidateCode.ExceptRoleIds.Count > 0) { UserRoleCollection userRoles = User.Current.Roles; foreach (UserRole role in userRoles) { if (tempValidateCode.ExceptRoleIds.Contains(role.RoleID.ToString())) { return(false); } } } if (tempValidateCode.LimitedTime == 0 || tempValidateCode.LimitedCount == 0) { return(true); } string IP = IPUtil.GetCurrentIP(); ValidateCodeActionRecordCollection recodes = GetValidateCodeActionRecodes(IP); DateTime dateTime = DateTimeUtil.Now.AddSeconds(0 - tempValidateCode.LimitedTime); int count = 0; foreach (ValidateCodeActionRecord recode in recodes) { if (string.Compare(recode.Action, actionType, true) == 0) { if (recode.CreateDate > dateTime) { count++; } } } if (count >= tempValidateCode.LimitedCount) { return(true); } return(false); } } return(false); }
public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) { Role role = Role.OneWhere(c => c.Name == roleName, Database); bool result = false; if (role != null) { if (throwOnPopulatedRole && role.Users.Count > 0) { string[] userNames = role.Users.Select(u => u.UserName).ToArray(); throw new InvalidOperationException("({0}) Role is populated:\r\n{1}"._Format(roleName, userNames.ToDelimited(u => u, ", "))); } else { SqlStringBuilder sql = Database.GetSqlStringBuilder(); // deleting the role directly will cause the framework to attempt // to delete the users as well since the relationship is an Xref. // Doing it this way will prevent the deletion of the users. UserRoleCollection xrefs = UserRole.Where(c => c.RoleId == role.Id, Database); xrefs.WriteDelete(sql); role.WriteDelete(sql); sql.Execute(Database); result = true; } } return(result); }
///// <summary> ///// 将一组用户加入一组用户组,并检查操作者的权限 ///// </summary> ///// <param name="operatorUserID"></param> ///// <param name="usersInRoles"></param> ///// <returns></returns> //public bool AddUsersToRoles(AuthUser operatorUser, UserRoleCollection userRoles) //{ // if (operatorUser.UserID <= 0) // { // ThrowError(new NotLoginError()); // return false; // } // if (userRoles == null || userRoles.Count == 0) // { // ThrowError(new NoUsersAddToRolesError("userRoles", userRoles)); // return false; // } // List<int> userIds = new List<int>(); // for (int i = 0; i < userRoles.Count; i ++ ) // { // UserRole userRole = userRoles[i]; // if (userRole.RoleID == Guid.Empty // || // userRole.Role == null // || // ManagePermissionSet.Can(operatorUser, ManageUserPermissionSet.ActionWithTarget.EditUserRole, userRole.UserID) == false // ) // userRoles.RemoveAt(i); // else if (userIds.Contains(userRole.UserID) == false) // userIds.Add(userRole.UserID); // } // if (userRoles.Count == 0) // { // return true; // } // UserDao.Instance.AddUsersToRoles(userRoles); // RemoveUsersCache(userIds); // return true; //} /// <summary> /// 将一组用户加入一组用户组 /// </summary> /// <param name="usersInRoles"></param> /// <returns></returns> internal bool AddUsersToRoles(UserRoleCollection userRoles) { if (userRoles == null || userRoles.Count == 0) { ThrowError(new NoUsersAddToRolesError("userRoles", userRoles)); return(false); } List <int> userIds = new List <int>(); for (int i = 0; i < userRoles.Count; i++) { UserRole userRole = userRoles[i]; if (userRole.RoleID == Guid.Empty || userRole.Role == null || userRole.Role.IsVirtualRole == true) { userRoles.RemoveAt(i); } else if (userIds.Contains(userRole.UserID) == false) { userIds.Add(userRole.UserID); } } UserDao.Instance.AddUsersToRoles(userRoles); // RemoveUsersCache(userIds); return(true); }
private IEnumerable <IUserRole> GetRoles() { GetUserGroupRolesRequest request = new GetUserGroupRolesRequest(Name); UserRoleCollection userRoleCollection = connection.Get <UserRoleCollection>(request); return(userRoleCollection.UserRoles); }
protected override void SetupDependencies() { UserRoleCollection userRoleCollection = Mock <UserRoleCollection>(); userRoleCollection.UserRoles = new List <UserRole>(); connection.Get <UserRoleCollection>(Arg.Any <GetUserGroupRolesRequest>()).Returns(userRoleCollection); }
private UserRoleCollection CreateUserRoleCollection() { UserRoleCollection userRoleCollection = new UserRoleCollection(); userRoleCollection.UserRoles = new List <UserRole>(); return(userRoleCollection); }
protected override void SetupDependencies() { UserGroupCollection userGroupCollection = CreateUserGroupCollection(); connection.Get <UserGroupCollection>(Arg.Any <GetUsersGroupsRequest>()).Returns(userGroupCollection); UserRoleCollection userRoleCollection = CreateUserRoleCollection(); connection.Get <UserRoleCollection>(Arg.Any <GetUserRolesRequest>()).Returns(userRoleCollection); }
public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames) { RoleCollection roles = Role.Where(c => c.Name.In(roleNames), Database); UserCollection users = User.Where(c => c.UserName.In(usernames), Database); long[] roleIds = roles.Select(r => r.Id.Value).ToArray(); long[] userIds = users.Select(u => u.Id.Value).ToArray(); UserRoleCollection xrefs = UserRole.Where(c => c.RoleId.In(roleIds) && c.UserId.In(userIds), Database); xrefs.Delete(Database); }
public ActionResult Save(Bam.Net.UserAccounts.Data.UserRole[] values) { try { UserRoleCollection saver = new UserRoleCollection(); saver.AddRange(values); saver.Save(); return(Json(new { Success = true, Message = "", Dao = "" })); } catch (Exception ex) { return(GetErrorResult(ex)); } }
public override bool DeleteUser(string username, bool deleteAllRelatedData) { User user = User.GetByUserName(username); bool result = false; try { if (user != null) { user.IsDeleted = true; user.IsApproved = false; user.Save(); if (deleteAllRelatedData) { UserRoleCollection roles = UserRole.Where(c => c.UserId == user.Id); AccountCollection accounts = Account.Where(c => c.UserId == user.Id); PasswordCollection passwords = Password.Where(c => c.UserId == user.Id); PasswordResetCollection resets = PasswordReset.Where(c => c.UserId == user.Id); PasswordFailureCollection failures = PasswordFailure.Where(c => c.UserId == user.Id); LockOutCollection lockouts = LockOut.Where(c => c.UserId == user.Id); LoginCollection logins = Login.Where(c => c.UserId == user.Id); PasswordQuestionCollection questions = PasswordQuestion.Where(c => c.UserId == user.Id); SettingCollection settings = Setting.Where(c => c.UserId == user.Id); SessionCollection session = Session.Where(c => c.UserId == user.Id); Database db = Db.For <User>(); SqlStringBuilder sql = db.ServiceProvider.Get <SqlStringBuilder>(); roles.WriteDelete(sql); accounts.WriteDelete(sql); passwords.WriteDelete(sql); resets.WriteDelete(sql); failures.WriteDelete(sql); lockouts.WriteDelete(sql); logins.WriteDelete(sql); questions.WriteDelete(sql); settings.WriteDelete(sql); session.WriteDelete(sql); sql.Execute(db); } } } catch (Exception ex) { result = false; Log.AddEntry("{0}.{1}::{2}", ex, this.GetType().Name, MethodBase.GetCurrentMethod().Name, ex.Message); } return(result); }
public T GetValue(User my) { UserRoleCollection roles = my.Roles; Role maxRole = my.MaxRole; RoleCollection systemRoles = AllSettings.Current.RoleSettings.Roles; foreach (ExceptionItem <T> item in this) { if (item.LevelStatus == LevelStatus.Above) { Role role; if (systemRoles.TryGetValue(item.RoleID, out role) == false) { continue; } if (maxRole >= role) { return(item.Value); } } else if (item.LevelStatus == LevelStatus.Below) { Role role; if (systemRoles.TryGetValue(item.RoleID, out role) == false) { continue; } if (maxRole <= role) { return(item.Value); } } else { foreach (UserRole role in roles) { if (role.RoleID == item.RoleID) { return(item.Value); } } } } return(this[0].Value); }
public void RemoveUserFromRole(string userName, string roleName) { userName = userName.ToLower(); Query q = UserRole.CreateQuery(); q.AndWhere(UserRole.Columns.UserId, (GraffitiUsers.GetUser(userName) as User).Id); q.AndWhere(UserRole.Columns.RoleName, roleName); UserRoleCollection urCol = new UserRoleCollection(); urCol.LoadAndCloseReader(q.ExecuteReader()); if (urCol.Count > 0) { UserRole.Destroy(urCol[0].Id); } }
public IEnumerable <IdentityRole> FindByUserId(string userId) { var userRoleList = UserRoleCollection.GetUserRoleERList(userId); var list = new List <IdentityRole>(); foreach (var item in userRoleList) { if (item.Selected) { list.Add(new IdentityRole { Id = item.FkRole, Name = item.Name }); } } return(list); }
public void AddUserToRole(string userName, string RoleName) { userName = userName.ToLower(); User user = (User)GraffitiUsers.GetUser(userName); Query q = UserRole.CreateQuery(); q.AndWhere(UserRole.Columns.UserId, user.Id); q.AndWhere(UserRole.Columns.RoleName, RoleName); UserRoleCollection urCol = new UserRoleCollection(); urCol.LoadAndCloseReader(q.ExecuteReader()); if (urCol.Count == 0) { UserRole ur = new UserRole(); ur.UserId = user.Id; ur.RoleName = RoleName; ur.Save(); } }
/// <summary> /// 获取用户的所有系统通知,包括已读未读的。 /// </summary> /// <param name="operateUser">操作者</param> /// <param name="unreadIDs">返回集合内未读的系统通知编号</param> /// <returns></returns> public static SystemNotifyCollection GetMyAllSystemNotifies(AuthUser operateUser, out List <int> unreadIDs) { SystemNotifyCollection allNotifys = Instance.AllSystemNotifys; SystemNotifyCollection myNotifys = new SystemNotifyCollection(); UserRoleCollection myRoles = operateUser.Roles; unreadIDs = new List <int>(); string myUserIDTag = string.Concat(",", operateUser.UserID, ","); foreach (SystemNotify notify in allNotifys) { if (!notify.Available) { continue; } if (notify.ReceiveUserIDs.Contains(operateUser.UserID)) { if (!string.IsNullOrEmpty(notify.ReadUserIDs) && !notify.ReadUserIDs.Contains(myUserIDTag))//是否已读 { unreadIDs.Add(notify.NotifyID); } myNotifys.Add(notify); } else { foreach (UserRole ur in myRoles) { if (notify.ReceiveRoles.Contains(ur.RoleID)) { if (!string.IsNullOrEmpty(notify.ReadUserIDs) && !notify.ReadUserIDs.Contains(myUserIDTag))//是否已读 { unreadIDs.Add(notify.NotifyID); } myNotifys.Add(notify); break; } } } } return(myNotifys); }
// Save user roles public void Insert(IdentityUser user, string roleId) { var userRoleList = UserRoleCollection.GetUserRoleERList(user.Id); var list = new List <object>(); foreach (var item in userRoleList) { if (item.FkRole == roleId) { item.Selected = true; } list.Add(item); } var error = new UserEdit().SaveUserRole(user.Id, list); if (!string.IsNullOrEmpty(error)) { throw new Exception(error); } }
protected string GetRoleNames(UserRoleCollection roles, string separator) { StringBuilder sb = new StringBuilder(); foreach (UserRole role in roles) { if (!role.Role.IsHidden) sb.Append(role.RoleName + separator); } if (sb.Length > 0) { return sb.ToString(0, sb.Length - separator.Length); } return string.Empty; }
public override PropResult Apply(HttpRequest request, string param) { StringList paramList = StringList.Parse(param); int time = 0; string unit = "d"; Guid[] joinRoleIDs = new List <Guid>().ToArray(); Guid[] exitRoleIDs = new List <Guid>().ToArray(); string timeAddUp = "0"; if (StringUtil.TryParse <int>(paramList[0], out time) == false) { return(Error("道具设置有误,请联系管理员")); } if (paramList.Count > 1) { unit = paramList[1]; } if (paramList.Count > 5) { timeAddUp = paramList[5]; } DateTime beginDate = DateTimeUtil.Now; DateTime endDate = UpdateEndDate(beginDate, time, unit); if (paramList.Count > 2) { joinRoleIDs = StringUtil.Split <Guid>(paramList[2], ','); } if (paramList.Count > 3) { exitRoleIDs = StringUtil.Split <Guid>(paramList[3], ','); } UserRoleCollection joinRoles = new UserRoleCollection(); foreach (Guid roleID in joinRoleIDs) { UserRole role = null; //如果道具作用时间可以叠加 if (timeAddUp == "1") { role = RoleBO.Instance.GetUserRoleByBothIDs(User.Current.UserID, roleID); } if (role != null) { if (role.EndDate < DateTimeUtil.Now) { role.EndDate = DateTimeUtil.Now; } role.EndDate = UpdateEndDate(role.EndDate, time, unit); } else { role = new UserRole(); role.UserID = User.Current.UserID; role.RoleID = roleID; role.BeginDate = beginDate; role.EndDate = endDate; } joinRoles.Add(role); } UserBO.Instance.AddUsersToRoles(joinRoles); UserBO.Instance.RemoveUsersFromRoles(new int[] { User.Current.UserID }, exitRoleIDs); return(Succeed()); }
public override PropResult Apply(HttpRequest request, string param) { StringList paramList = StringList.Parse(param); int time = 0; string unit = "d"; Guid[] joinRoleIDs = new List<Guid>().ToArray(); Guid[] exitRoleIDs = new List<Guid>().ToArray(); string timeAddUp = "0"; if(StringUtil.TryParse<int>(paramList[0], out time) == false) { return Error("道具设置有误,请联系管理员"); } if (paramList.Count > 1) { unit = paramList[1]; } if (paramList.Count > 5) { timeAddUp = paramList[5]; } DateTime beginDate = DateTimeUtil.Now; DateTime endDate = UpdateEndDate(beginDate,time,unit); if (paramList.Count > 2) { joinRoleIDs = StringUtil.Split<Guid>(paramList[2], ','); } if (paramList.Count > 3) { exitRoleIDs = StringUtil.Split<Guid>(paramList[3], ','); } UserRoleCollection joinRoles = new UserRoleCollection(); foreach(Guid roleID in joinRoleIDs) { UserRole role=null; //如果道具作用时间可以叠加 if (timeAddUp == "1") { role = RoleBO.Instance.GetUserRoleByBothIDs(User.Current.UserID, roleID); } if (role != null) { if (role.EndDate < DateTimeUtil.Now) { role.EndDate = DateTimeUtil.Now; } role.EndDate = UpdateEndDate(role.EndDate, time, unit); } else { role = new UserRole(); role.UserID = User.Current.UserID; role.RoleID = roleID; role.BeginDate = beginDate; role.EndDate = endDate; } joinRoles.Add(role); } UserBO.Instance.AddUsersToRoles(joinRoles); UserBO.Instance.RemoveUsersFromRoles(new int[]{ User.Current.UserID }, exitRoleIDs); return Succeed(); }
public void RemoveUserFromRole(string userName, string roleName) { userName = userName.ToLower(); Query q = UserRole.CreateQuery(); q.AndWhere(UserRole.Columns.UserId, (GraffitiUsers.GetUser(userName) as User).Id); q.AndWhere(UserRole.Columns.RoleName, roleName); UserRoleCollection urCol = new UserRoleCollection(); urCol.LoadAndCloseReader(q.ExecuteReader()); if (urCol.Count > 0) UserRole.Destroy(urCol[0].Id); }
/*** 用户组操作 ***/ /// <summary> /// 将一组用户加入一组用户组 /// </summary> /// <param name="userRoles"></param> public abstract void AddUsersToRoles(UserRoleCollection userRoles);
/// <summary> /// 更新某个用户的用户组(该用户的原用户组信息被清空) /// </summary> /// <param name="targetUserId"></param> /// <param name="userRoles"></param> public abstract void UpdateUserRoles(int targetUserId, UserRoleCollection userRoles);
/// <summary> /// 用户注册 /// </summary> public abstract int Register(ref int userID, string username, string email, string password, EncryptFormat passwordFormat, UserRoleCollection initRoles, string ip, Guid?serial, int inviterID, bool IsActive, int[] userPoints, int ipInterval);