Ejemplo n.º 1
0
        /// <summary>
        /// 给角色赋予新的权限
        /// </summary>
        /// <param name="role"></param>
        /// <param name="menus"></param>
        /// <returns></returns>
        public async Task AddPermissionsToRole(Role role, List <string> menuNameList)
        {
            if (role == null)
            {
                throw new BusinessException("不存在的角色!");
            }

            //删除所有的原有权限
            await _roleMenuRepository.DeleteAsync(x => x.RoleId == role.Id);

            //赋予权限
            foreach (var menuName in menuNameList)
            {
                var menu = await _menuRepository.FindAsync(x => x.Name == menuName);

                if (menu == null)
                {
                    continue;
                }
                var roleMenu = RoleMenu.CreateRoleMenu(role, menu);
                await _roleMenuRepository.InsertAsync(roleMenu);
            }
        }