Browse Source

Add Tag Admin app services

pull/6872/head
enisn 6 years ago
parent
commit
881f19d7c3
  1. 10
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/ITagAdminAppService.cs
  2. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs
  3. 9
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagGetListInput.cs
  4. 10
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs
  5. 25
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs
  6. 21
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs
  7. 70
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs
  8. 56
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagController.cs
  9. 27
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json
  10. 27
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json

10
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/ITagAdminAppService.cs

@ -0,0 +1,10 @@
using System;
using Volo.Abp.Application.Services;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Admin.Tags
{
public interface ITagAdminAppService : ICrudAppService<TagDto, Guid, TagGetListInput, TagCreateDto, TagUpdateDto>
{
}
}

12
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs

@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace Volo.CmsKit.Admin.Tags
{
public class TagCreateDto
{
[Required]
public string EntityType { get; set; }
[Required]
public string Name { get; set; }
}
}

9
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagGetListInput.cs

@ -0,0 +1,9 @@
using Volo.Abp.Application.Dtos;
namespace Volo.CmsKit.Admin.Tags
{
public class TagGetListInput : PagedAndSortedResultRequestDto
{
public string Filter { get; set; }
}
}

10
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs

@ -0,0 +1,10 @@
using System.ComponentModel.DataAnnotations;
namespace Volo.CmsKit.Admin.Tags
{
public class TagUpdateDto
{
[Required]
public string Name { get; set; }
}
}

25
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs

@ -0,0 +1,25 @@
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
using Volo.CmsKit.Localization;
namespace Volo.CmsKit.Permissions
{
public class CmsKitAdminPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var cmsGroup = context.GetGroupOrNull(CmsKitAdminPermissions.GroupName) ?? context.AddGroup(CmsKitAdminPermissions.GroupName, L("Permission:CmsKit"));
cmsGroup
.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement"))
.AddChild(CmsKitAdminPermissions.Tags.Create, L("Permission:TagManagement.Create"))
.AddChild(CmsKitAdminPermissions.Tags.Update, L("Permission:TagManagement.Update"))
.AddChild(CmsKitAdminPermissions.Tags.Delete, L("Permission:TagManagement.Delete"));
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<CmsKitResource>(name);
}
}
}

21
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs

@ -0,0 +1,21 @@
using Volo.Abp.Reflection;
namespace Volo.CmsKit.Permissions
{
public class CmsKitAdminPermissions
{
public const string GroupName = "CmsKit";
public static class Tags
{
public const string Default = GroupName + ".Tags";
public const string Create = Default + ".Create";
public const string Update = Default + ".Update";
public const string Delete = Default + ".Delete";
}
public static string[] GetAll()
{
return ReflectionHelper.GetPublicConstantsRecursively(typeof(CmsKitAdminPermissions));
}
}
}

70
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs

@ -0,0 +1,70 @@
using Microsoft.AspNetCore.Authorization;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.CmsKit.Admin.Tags;
using Volo.CmsKit.Permissions;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Admin.Tags
{
public class TagAdminAppService :
CrudAppService<
Tag,
TagDto,
Guid,
TagGetListInput,
TagCreateDto,
TagUpdateDto>,
ITagAdminAppService
{
protected ITagManager TagManager { get; }
public TagAdminAppService(
IRepository<Tag, Guid> repository,
ITagManager tagManager) : base(repository)
{
TagManager = tagManager;
GetListPolicyName = CmsKitAdminPermissions.Tags.Default;
GetPolicyName = CmsKitAdminPermissions.Tags.Default;
CreatePolicyName = CmsKitAdminPermissions.Tags.Create;
UpdatePolicyName = CmsKitAdminPermissions.Tags.Update;
DeletePolicyName = CmsKitAdminPermissions.Tags.Delete;
}
[Authorize(CmsKitAdminPermissions.Tags.Create)]
public override async Task<TagDto> CreateAsync(TagCreateDto input)
{
var inserted = await TagManager.InsertAsync(
GuidGenerator.Create(),
input.EntityType,
input.Name,
CurrentTenant?.Id);
return MapToGetOutputDto(inserted);
}
[Authorize(CmsKitAdminPermissions.Tags.Update)]
public override async Task<TagDto> UpdateAsync(Guid id, TagUpdateDto input)
{
var updated = await TagManager.UpdateAsync(
id,
input.Name);
return MapToGetOutputDto(updated);
}
protected override IQueryable<Tag> CreateFilteredQuery(TagGetListInput input)
{
return base.CreateFilteredQuery(input)
.WhereIf(
!string.IsNullOrEmpty(input.Filter),
x =>
x.Name.ToLower().Contains(input.Filter) ||
x.EntityType.ToLower().Contains(input.Filter));
}
}
}

56
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagController.cs

@ -0,0 +1,56 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.CmsKit.Admin.Tags;
using Volo.CmsKit.Permissions;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Admin.Tags
{
public class TagController : CmsKitAdminController, ITagAdminAppService
{
protected ITagAdminAppService TagAdminAppService { get; }
public TagController(ITagAdminAppService tagAdminAppService)
{
TagAdminAppService = tagAdminAppService;
}
[HttpPost]
[Authorize(CmsKitAdminPermissions.Tags.Create)]
public Task<TagDto> CreateAsync(TagCreateDto input)
{
return TagAdminAppService.CreateAsync(input);
}
[HttpDelete("{id}")]
[Authorize(CmsKitAdminPermissions.Tags.Delete)]
public Task DeleteAsync(Guid id)
{
return TagAdminAppService.DeleteAsync(id);
}
[HttpGet("{id}")]
[Authorize(CmsKitAdminPermissions.Tags.Default)]
public Task<TagDto> GetAsync(Guid id)
{
return TagAdminAppService.GetAsync(id);
}
[HttpGet]
[Authorize(CmsKitAdminPermissions.Tags.Default)]
public Task<PagedResultDto<TagDto>> GetListAsync(TagGetListInput input)
{
return TagAdminAppService.GetListAsync(input);
}
[HttpPut("{id}")]
[Authorize(CmsKitAdminPermissions.Tags.Update)]
public Task<TagDto> UpdateAsync(Guid id, [FromBody] TagUpdateDto input)
{
return TagAdminAppService.UpdateAsync(id, input);
}
}
}

27
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json

@ -1,22 +1,29 @@
{ {
"culture": "en", "culture": "en",
"texts": { "texts": {
"PickYourReaction": "Pick your reaction", "CommentAuthorizationExceptionMessage": "Those comments are not allowed for public display.",
"YourComment": "Your comment",
"YourReply": "Your reply",
"Comments": "Comments", "Comments": "Comments",
"Send": "Send",
"Delete": "Delete", "Delete": "Delete",
"Reply": "Reply",
"Update": "Update",
"Edit": "Edit", "Edit": "Edit",
"LoginToAddComment": "Login to add comment", "LoginToAddComment": "Login to add comment",
"LoginToRate": "Login to rate",
"LoginToReply": "Login to reply", "LoginToReply": "Login to reply",
"MessageDeletionConfirmationMessage": "This comment will be deleted completely.", "MessageDeletionConfirmationMessage": "This comment will be deleted completely.",
"CommentAuthorizationExceptionMessage": "Those comments are not allowed for public display.", "Permission:CmsKit": "CmsKit",
"Undo": "Undo", "Permission:TagManagement": "Tag Management",
"Permission:TagManagement.Create": "Create Tag",
"Permission:TagManagement.Delete": "Delete Tag",
"Permission:TagManagement.Update": "Update Tag",
"PickYourReaction": "Pick your reaction",
"RatingUndoMessage": "Your rating will be undo.", "RatingUndoMessage": "Your rating will be undo.",
"LoginToRate": "Login to rate", "Reply": "Reply",
"Star": "Star" "Send": "Send",
"Star": "Star",
"TagDeletionConfirmationMessage": "Are you sure to delete '{0}' tag?",
"Tags": "Tags",
"Undo": "Undo",
"Update": "Update",
"YourComment": "Your comment",
"YourReply": "Your reply"
} }
} }

27
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json

@ -1,22 +1,29 @@
{ {
"culture": "tr", "culture": "tr",
"texts": { "texts": {
"PickYourReaction": "Tepkinizi seçin", "CommentAuthorizationExceptionMessage": "Bu yorumları görebilmek için yetki gerekir.",
"YourComment": "Yorumunuz",
"YourReply": "Cevabınız",
"Comments": "Yorumlar", "Comments": "Yorumlar",
"Send": "Gönder",
"Delete": "Sil", "Delete": "Sil",
"Reply": "Cevapla",
"Update": "Güncelle",
"Edit": "Düzenle", "Edit": "Düzenle",
"LoginToAddComment": "Yorum yapmak için giriş yap", "LoginToAddComment": "Yorum yapmak için giriş yap",
"LoginToRate": "Oylamak için giriş yapın",
"LoginToReply": "Cevap vermek için giriş yap", "LoginToReply": "Cevap vermek için giriş yap",
"MessageDeletionConfirmationMessage": "Bu yorum tamamen silinecektir", "MessageDeletionConfirmationMessage": "Bu yorum tamamen silinecektir",
"CommentAuthorizationExceptionMessage": "Bu yorumları görebilmek için yetki gerekir.", "Permission:CmsKit": "CmsKit",
"Undo": "Geri al", "Permission:TagManagement": "Etiket Yönetimi",
"Permission:TagManagement.Create": "Etiket Oluşturma",
"Permission:TagManagement.Delete": "Etiket Silme",
"Permission:TagManagement.Update": "Etiket Güncelleme",
"PickYourReaction": "Tepkinizi seçin",
"RatingUndoMessage": "Oylamanız geri alınacak.", "RatingUndoMessage": "Oylamanız geri alınacak.",
"LoginToRate": "Oylamak için giriş yapın", "Reply": "Cevapla",
"Star": "Yıldız" "Send": "Gönder",
"Star": "Yıldız",
"TagDeletionConfirmationMessage": "'{0}' etiketini silmek istediğinize emin misiniz?",
"Tags": "Etiketler",
"Undo": "Geri al",
"Update": "Güncelle",
"YourComment": "Yorumunuz",
"YourReply": "Cevabınız"
} }
} }

Loading…
Cancel
Save