Beispiel #1
0
        public async Task <IActionResult> CreatePermissionAsync([FromBody] PermissionCreateDto permissionCreateDto)
        {
            var id = Convert.ToInt32(User.Identity.Name);
            int sortId;   var leaveObj = new Permissions();

            //获取排序id
            try
            {
                var sortList = await context.Permissions.Where(m => m.PID == permissionCreateDto.PID).ToListAsync();

                if (sortList.Count != 0)
                {
                    sortId = sortList.Max(m => m.Sort);
                }
                else
                {
                    sortId = 1;
                }
                leaveObj = await context.Permissions.FirstOrDefaultAsync(m => m.PID == permissionCreateDto.PID);
            }
            catch (Exception ex)
            {
                throw;
            }

            var permission = mapper.Map <Permissions>(permissionCreateDto);

            permission.CreateID   = id;
            permission.CreateTime = DateTime.Now;
            permission.ActiveName = permission.Name;
            permission.Sort       = sortId + 1;
            if (leaveObj == null)
            {
                permission.Leave = 1;
            }
            else
            {
                permission.Leave = leaveObj.Leave;
            }
            await context.Permissions.AddAsync(permission);

            await context.SaveChangesAsync();

            return(Ok());
        }
Beispiel #2
0
        public async Task <IActionResult> EditPermissionByIDAsync(int permissionID, [FromBody] PermissionCreateDto permissionCreateDto)
        {
            var per = await context.Permissions.FindAsync(permissionID);

            if (per == null)
            {
                return(NotFound());
            }
            per.Name       = permissionCreateDto.Name;
            per.Icon       = permissionCreateDto.Icon;
            per.Url        = permissionCreateDto.Url;
            per.ActiveName = permissionCreateDto.Name;

            context.Permissions.Update(per);
            await context.SaveChangesAsync();

            //请掉所有角色权限菜单的缓冲
            foreach (var item in await context.Roles.ToListAsync())
            {
                await distributedCache.RemoveAsync($"Role_Menu_{item.ID}");
            }

            return(Ok());
        }