예제 #1
0
        /// <summary>
        /// 授予用户操作权限
        /// </summary>
        /// <param name="sysId"></param>
        /// <param name="userId"></param>
        /// <param name="selectedRightIds">当前选择授予的权限列表</param>
        public void AddUserRights(int sysId, int userId, List <int> selectedRightIds)
        {
            if (sysId <= 0)
            {
                throw new NotRightException();
            }

            //权限判断
            User user = loginService.HaveAdminRightForUserGrant(sysId, userId, true);

            //不能直接给渠道方面的用户分配操作权限,只能给他们分配角色
            if (user.AccountType == UserTypeOptions.Channel || user.AccountType == UserTypeOptions.ChannelPartner)
            {
                throw new NotRightException();
            }

            List <int> rangeRightIds = loginService.LoginUser.AccountType == UserTypeOptions.ProductAdmin
                                          ? DARightsHelper.GetUserRights(sysId, loginService.LoginUser.ID, loginService.LoginUser.AccountType).Select(a => a.RightID).ToList()
                                          : null;

            DARightsHelper.AddUserRights(sysId, userId, selectedRightIds, rangeRightIds);

            //记录登录日志
            string rights = string.Empty;

            selectedRightIds.ForEach((i) => { rights += i.ToString() + ","; });
            rights = rights.TrimEnd(',');
            loginService.AddLog(
                "AddUserRights",
                string.Format("添加用户权限(UserID={0},SysID={1},Rights={2})", userId, sysId, rights));
        }