Example #1
0
        /// <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]);
        }
Example #2
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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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);
        }
Example #5
0
        ///// <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);
        }
Example #6
0
        private IEnumerable <IUserRole> GetRoles()
        {
            GetUserGroupRolesRequest request = new GetUserGroupRolesRequest(Name);

            UserRoleCollection userRoleCollection = connection.Get <UserRoleCollection>(request);

            return(userRoleCollection.UserRoles);
        }
Example #7
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
 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));
     }
 }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
        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);
            }
        }
Example #15
0
        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();
            }
        }
Example #17
0
        /// <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);
        }
Example #18
0
        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();
            }
        }
Example #19
0
        // 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);
            }
        }
Example #20
0
 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;
 }
Example #21
0
        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());
        }
Example #22
0
        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);
 }
Example #24
0
        /*** 用户组操作 ***/

        /// <summary>
        /// 将一组用户加入一组用户组
        /// </summary>
        /// <param name="userRoles"></param>
        public abstract void AddUsersToRoles(UserRoleCollection userRoles);
Example #25
0
 /// <summary>
 /// 更新某个用户的用户组(该用户的原用户组信息被清空)
 /// </summary>
 /// <param name="targetUserId"></param>
 /// <param name="userRoles"></param>
 public abstract void UpdateUserRoles(int targetUserId, UserRoleCollection userRoles);
Example #26
0
 /// <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);