예제 #1
0
        /// <summary>
        /// 创建用户
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int InsertAll(Sys_User model)
        {
            var userId = 0;

            using (var tran = Db.GetTransaction())
            {
                //新增用户基本信息。
                userId = UserAccess.Insert(model);
                if (userId > 0)
                {
                    //新增用户角色信息。
                    UserRoleRelationAccess.SetRole(userId, model.RoleId, model.SUCreateUser);
                    //新增用户登陆信息。
                    Sys_Userlogon userLogOnEntity = new Sys_Userlogon()
                    {
                        SULUserId    = userId,
                        SULLoginName = model.SUAccount,
                        SULPassword  = model.Password,
                    };
                    var userLoginId = UserLogOnAccess.Insert(userLogOnEntity);
                }
                tran.Complete();
            }
            return(userId);
        }
예제 #2
0
        /// <summary>
        /// 设置角色
        /// </summary>
        /// <param name="userId">会员ID</param>
        /// <param name="roleIds">角色列表</param>
        /// <param name="currtUserId">登录用户ID</param>
        public static void SetRole(int userId, List <int> roleIds, int currtUserId)
        {
            //a.用户需要重新设置的角色ID集合。
            var listNewRoleIds = roleIds.ToList();
            //b.用户原有的角色信息。
            var listOldRRs = UserRoleRelationAccess.GetList(userId);

            //c.删除用户新设置和原有用户角色关系集合中相同的记录。
            for (int i = listOldRRs.Count - 1; i >= 0; i--)
            {
                if (listNewRoleIds.Contains(listOldRRs[i].SURRRoleId))
                {
                    listNewRoleIds.Remove(listOldRRs[i].SURRRoleId);
                    listOldRRs.Remove(listOldRRs[i]);
                }
            }
            //d.新集合中剩下的用户角色关系新增到数据库。
            listNewRoleIds.ForEach((roleId) =>
            {
                UserRoleRelationAccess.Insert(new Sys_Userrolerelation()
                {
                    SURRUserId     = userId,
                    SURRRoleId     = roleId,
                    SURRCreateUser = currtUserId,
                    SURRCreateTime = DateTime.Now
                });
            });
            //e.旧集合中剩下的用户角色关系从数据库中删除。
            listOldRRs.ForEach((rrObj) =>
            {
                UserRoleRelationAccess.Delete(rrObj);
            });
        }