Skip to content

Commit 6eda8d4

Browse files
authored
Merge pull request #1 from SyrnaAbp/dev
blazor modules implemented
2 parents b399959 + 16fe415 commit 6eda8d4

File tree

65 files changed

+647
-205
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+647
-205
lines changed

.github/workflows/publish.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,16 @@ jobs:
5757
rm -f *.HttpApi.Client.ConsoleTestApp.*
5858
rm -f *.Tests.*
5959
rm -f *.TestBase.*
60+
rm -f *.MainDemo.*
6061
ls
6162
6263
- name: dotnet nuget push to GitHub
6364
uses: tanaka-takayoshi/[email protected]
6465
with:
6566
nupkg-path: '${{ github.workspace }}/nugetPackages/*.nupkg'
6667
repo-owner: 'SyrnaAbp'
67-
gh-user: 'SyrnaAbp'
68-
token: ${{ secrets.GITHUB_TOKEN }}
68+
gh-user: 'dolunay'
69+
token: ${{ secrets.NUGET_PACKAGE_TOKEN }}
6970

7071
- name: dotnet nuget push to NuGet
7172
run: dotnet nuget push ${{ github.workspace }}/nugetPackages/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json --skip-duplicate
@@ -76,11 +77,11 @@ jobs:
7677
with:
7778
tag: ${{ steps.getVersion.outputs.first_match }}
7879
env:
79-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
80+
GITHUB_TOKEN: ${{ secrets.NUGET_PACKAGE_TOKEN }}
8081

8182
- name: add git tag
8283
if: ${{ steps.checkTag.outputs.exists == 'false' }}
8384
uses: tvdias/[email protected]
8485
with:
85-
repo-token: ${{ secrets.GITHUB_TOKEN }}
86+
repo-token: ${{ secrets.NUGET_PACKAGE_TOKEN }}
8687
tag: ${{ steps.getVersion.outputs.first_match }}

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Changelog
22
These are the list of changes to each version that has been released.
33

4-
## 9.0
4+
## 2024-12-22
55
- [x] Initial release, .Net9 based

PACKS_README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Syrna.DynamicPermission
2+
Dynamic permission module for ABP framework.
3+
4+
An ABP module that allows you to define and grant dynamic permissions in runtime.
5+
6+
## Installation
7+
8+
1. Install the following NuGet packages. ([see how](https://github.com/SyrnaAbp/SyrnaAbpGuide/blob/master/docs/How-To.md#add-nuget-packages))
9+
10+
* Syrna.DynamicPermission.Application
11+
* Syrna.DynamicPermission.Application.Contracts
12+
* Syrna.DynamicPermission.Domain
13+
* Syrna.DynamicPermission.Domain.Shared
14+
* Syrna.DynamicPermission.EntityFrameworkCore
15+
* Syrna.DynamicPermission.HttpApi
16+
* Syrna.DynamicPermission.HttpApi.Client
17+
* Syrna.DynamicPermission.Web
18+
* Syrna.DynamicPermission.Blazor
19+
* Syrna.DynamicPermission.Blazor.Server
20+
* Syrna.DynamicPermission.Blazor.WebAssembly
21+
22+
1. Add `DependsOn(typeof(SyrnaDynamicPermissionXxxModule))` attribute to configure the module dependencies. ([see how](https://github.com/SyrnaAbp/SyrnaAbpGuide/blob/master/docs/How-To.md#add-module-dependencies))
23+
24+
1. Add `builder.ConfigureDynamicPermission();` to the `OnModelCreating()` method in **MyProjectMigrationsDbContext.cs**.
25+
26+
1. Add EF Core migrations and update your database. See: [ABP document](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF#add-database-migration).
27+
28+
29+
30+

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Syrna.DynamicPermission
2-
Private Messaging module for ABP framework.
2+
Dynamic permission module for ABP framework.
33

44
[![ABP version](https://img.shields.io/badge/dynamic/xml?style=flat-square&color=yellow&label=abp&query=%2F%2FProject%2FPropertyGroup%2FVoloAbpPackageVersion&url=https%3A%2F%2Fraw.githubusercontent.com%2FSyrnaAbp%2FSyrna.DynamicPermission%2Fmaster%2FDirectory.Packages.props)](https://abp.io)
55
![build and test](https://img.shields.io/github/actions/workflow/status/SyrnaAbp/Syrna.DynamicPermission/build-all.yml?branch=dev&style=flat-square)
66
[![NuGet Download](https://img.shields.io/nuget/dt/Syrna.DynamicPermission.Application.svg?style=flat-square)](https://www.nuget.org/packages/Syrna.DynamicPermission.Application)
77
[![NuGet (with prereleases)](https://img.shields.io/nuget/vpre/Syrna.DynamicPermission.Application.svg?style=flat-square)](https://www.nuget.org/packages/Syrna.DynamicPermission.Application)
88

9-
An abp application module that allows users to send private messages to each other.
9+
An ABP module that allows you to define and grant dynamic permissions in runtime.
1010

1111
## Installation
1212

@@ -32,6 +32,11 @@ An abp application module that allows users to send private messages to each oth
3232

3333
## Usage
3434

35+
![Dynamic Permission Definitions](docs/images/DynamicPermissionDefinitions.png)
36+
37+
![Dynamic Permission Definitions Editing](docs/images/DynamicPermissionDefinitions_Editing.png)
38+
39+
![Edit Role Permissions](docs/images/EditRolePermissions.png)
3540

3641
## Reference
3742

@@ -42,5 +47,8 @@ An abp application module that allows users to send private messages to each oth
4247
1. Demo project created for OpenIddict
4348
2. Demo project extended modules added
4449
3. Blazor modules added
50+
4. Db schema refatored
51+
5. Blazor modules implemented
52+
6. AspNetCore Web refactored
4553

4654

Syrna.DynamicPermission.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solutio
105105
LICENSE = LICENSE
106106
NuGet.Config = NuGet.Config
107107
packing.props = packing.props
108+
PACKS_README.md = PACKS_README.md
108109
README.md = README.md
109110
EndProjectSection
110111
EndProject
Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
1-
using System.Threading.Tasks;
2-
using Syrna.DynamicPermission.PermissionDefinitions;
3-
using Volo.Abp.Data;
4-
using Volo.Abp.DependencyInjection;
5-
using Volo.Abp.Domain.Repositories;
6-
using Volo.Abp.Uow;
7-
8-
namespace Syrna.DynamicPermission.MainDemo.Data
9-
{
10-
public class MainDemoDataSeedContributor : IDataSeedContributor, ITransientDependency
11-
{
12-
protected const string PermissionDefinitionDemo1Name = "Permission1";
1+
using System.Threading.Tasks;
2+
using Syrna.DynamicPermission.PermissionDefinitions;
3+
using Volo.Abp.Data;
4+
using Volo.Abp.DependencyInjection;
5+
using Volo.Abp.Domain.Repositories;
6+
using Volo.Abp.Uow;
7+
8+
namespace Syrna.DynamicPermission.MainDemo.Data
9+
{
10+
public class MainDemoDataSeedContributor : IDataSeedContributor, ITransientDependency
11+
{
12+
protected const string PermissionDefinitionDemo1Name = "Permission1";
1313
protected const string PermissionDefinitionDemo2Name = "Permission2";
1414

15-
private readonly IPermissionDefinitionRepository _permissionDefinitionRepository;
16-
17-
public MainDemoDataSeedContributor(
18-
IPermissionDefinitionRepository permissionDefinitionRepository)
19-
{
20-
_permissionDefinitionRepository = permissionDefinitionRepository;
15+
private readonly IPermissionDefinitionRepository _permissionDefinitionRepository;
16+
17+
public MainDemoDataSeedContributor(
18+
IPermissionDefinitionRepository permissionDefinitionRepository)
19+
{
20+
_permissionDefinitionRepository = permissionDefinitionRepository;
2121
}
2222

23-
[UnitOfWork]
24-
public async Task SeedAsync(DataSeedContext context)
25-
{
26-
if (!await _permissionDefinitionRepository.AnyAsync(x => x.Name == PermissionDefinitionDemo1Name))
27-
{
28-
await _permissionDefinitionRepository.InsertAsync(
29-
new PermissionDefinition(PermissionDefinitionDemo1Name, PermissionDefinitionDemo1Name, "A demo",
30-
true), true);
23+
[UnitOfWork]
24+
public async Task SeedAsync(DataSeedContext context)
25+
{
26+
if (!await _permissionDefinitionRepository.AnyAsync(x => x.Id == PermissionDefinitionDemo1Name))
27+
{
28+
await _permissionDefinitionRepository.InsertAsync(
29+
new PermissionDefinition(PermissionDefinitionDemo1Name, PermissionDefinitionDemo1Name, "A demo",
30+
true), true);
3131
}
3232

33-
if (!await _permissionDefinitionRepository.AnyAsync(x => x.Name == PermissionDefinitionDemo2Name))
34-
{
35-
await _permissionDefinitionRepository.InsertAsync(
36-
new PermissionDefinition(PermissionDefinitionDemo2Name, PermissionDefinitionDemo2Name, "A demo",
37-
false), true);
38-
}
39-
}
40-
}
33+
if (!await _permissionDefinitionRepository.AnyAsync(x => x.Id == PermissionDefinitionDemo2Name))
34+
{
35+
await _permissionDefinitionRepository.InsertAsync(
36+
new PermissionDefinition(PermissionDefinitionDemo2Name, PermissionDefinitionDemo2Name, "A demo",
37+
false), true);
38+
}
39+
}
40+
}
4141
}
Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -458,9 +458,9 @@ protected override void Up(MigrationBuilder migrationBuilder)
458458
name: "SyrnaPermissionDefinitions",
459459
columns: table => new
460460
{
461-
Name = table.Column<string>(type: "nvarchar(450)", nullable: false),
462-
DisplayName = table.Column<string>(type: "nvarchar(max)", nullable: true),
463-
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
461+
Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
462+
DisplayName = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: true),
463+
Description = table.Column<string>(type: "nvarchar(max)", maxLength: 2147483647, nullable: true),
464464
IsPublic = table.Column<bool>(type: "bit", nullable: false),
465465
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: false),
466466
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: false),
@@ -471,7 +471,7 @@ protected override void Up(MigrationBuilder migrationBuilder)
471471
},
472472
constraints: table =>
473473
{
474-
table.PrimaryKey("PK_SyrnaPermissionDefinitions", x => x.Name);
474+
table.PrimaryKey("PK_SyrnaPermissionDefinitions", x => x.Id);
475475
});
476476

477477
migrationBuilder.CreateTable(

demos/MainDemo/src/Syrna.DynamicPermission.MainDemo.SqlServer.EntityFrameworkCore/Migrations/MainDemoMigrationsDbContextModelSnapshot.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
2626

2727
modelBuilder.Entity("Syrna.DynamicPermission.PermissionDefinitions.PermissionDefinition", b =>
2828
{
29-
b.Property<string>("Name")
29+
b.Property<string>("Id")
3030
.HasColumnType("nvarchar(450)");
3131

3232
b.Property<string>("ConcurrencyStamp")
@@ -45,10 +45,12 @@ protected override void BuildModel(ModelBuilder modelBuilder)
4545
.HasColumnName("CreatorId");
4646

4747
b.Property<string>("Description")
48+
.HasMaxLength(2147483647)
4849
.HasColumnType("nvarchar(max)");
4950

5051
b.Property<string>("DisplayName")
51-
.HasColumnType("nvarchar(max)");
52+
.HasMaxLength(255)
53+
.HasColumnType("nvarchar(255)");
5254

5355
b.Property<string>("ExtraProperties")
5456
.IsRequired()
@@ -66,7 +68,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
6668
.HasColumnType("uniqueidentifier")
6769
.HasColumnName("LastModifierId");
6870

69-
b.HasKey("Name");
71+
b.HasKey("Id");
7072

7173
b.ToTable("SyrnaPermissionDefinitions", (string)null);
7274
});
22.9 KB
Loading

0 commit comments

Comments
 (0)