Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
吴兆宣
IdentityServer4-Admin
Commits
62766cf0
Commit
62766cf0
authored
5 years ago
by
Marko Matic
Browse files
Options
Download
Email Patches
Plain Diff
find users by claim
parent
80d587f9
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
67 additions
and
4 deletions
+67
-4
src/Skoruba.IdentityServer4.Admin.Api/Controllers/UsersController.cs
....IdentityServer4.Admin.Api/Controllers/UsersController.cs
+17
-1
src/Skoruba.IdentityServer4.Admin.BusinessLogic.Identity/Events/Identity/ClaimUsersRequestedEvent.cs
...ogic.Identity/Events/Identity/ClaimUsersRequestedEvent.cs
+15
-0
src/Skoruba.IdentityServer4.Admin.BusinessLogic.Identity/Services/IdentityService.cs
....Admin.BusinessLogic.Identity/Services/IdentityService.cs
+10
-1
src/Skoruba.IdentityServer4.Admin.BusinessLogic.Identity/Services/Interfaces/IIdentityService.cs
...essLogic.Identity/Services/Interfaces/IIdentityService.cs
+3
-1
src/Skoruba.IdentityServer4.Admin.EntityFramework.Identity/Repositories/IdentityRepository.cs
...tityFramework.Identity/Repositories/IdentityRepository.cs
+19
-0
src/Skoruba.IdentityServer4.Admin.EntityFramework.Identity/Repositories/Interfaces/IIdentityRepository.cs
...k.Identity/Repositories/Interfaces/IIdentityRepository.cs
+3
-1
No files found.
src/Skoruba.IdentityServer4.Admin.Api/Controllers/UsersController.cs
View file @
62766cf0
...
...
@@ -236,5 +236,21 @@ namespace Skoruba.IdentityServer4.Admin.Api.Controllers
return
Ok
(
roleClaimsApiDto
);
}
}
[
HttpGet
(
"ClaimType/{claimType}/ClaimValue/{claimValue}"
)]
public
async
Task
<
ActionResult
<
RoleClaimsApiDto
<
TRoleDtoKey
>>>
GetClaimUsers
(
string
claimType
,
string
claimValue
,
int
page
=
1
,
int
pageSize
=
10
)
{
var
usersDto
=
await
_identityService
.
GetClaimUsersAsync
(
claimType
,
claimValue
,
page
,
pageSize
);
return
Ok
(
usersDto
);
}
[
HttpGet
(
"ClaimType/{claimType}"
)]
public
async
Task
<
ActionResult
<
RoleClaimsApiDto
<
TRoleDtoKey
>>>
GetClaimUsers
(
string
claimType
,
int
page
=
1
,
int
pageSize
=
10
)
{
var
usersDto
=
await
_identityService
.
GetClaimUsersAsync
(
claimType
,
null
,
page
,
pageSize
);
return
Ok
(
usersDto
);
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/Skoruba.IdentityServer4.Admin.BusinessLogic.Identity/Events/Identity/ClaimUsersRequestedEvent.cs
0 → 100644
View file @
62766cf0
using
Skoruba.AuditLogging.Events
;
using
Skoruba.IdentityServer4.Admin.BusinessLogic.Identity.Dtos.Identity
;
namespace
Skoruba.IdentityServer4.Admin.BusinessLogic.Identity.Events.Identity
{
public
class
ClaimUsersRequestedEvent
<
TUsersDto
>
:
AuditEvent
{
public
TUsersDto
Users
{
get
;
set
;
}
public
ClaimUsersRequestedEvent
(
TUsersDto
users
)
{
Users
=
users
;
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/Skoruba.IdentityServer4.Admin.BusinessLogic.Identity/Services/IdentityService.cs
View file @
62766cf0
...
...
@@ -98,8 +98,17 @@ namespace Skoruba.IdentityServer4.Admin.BusinessLogic.Identity.Services
await
AuditEventLogger
.
LogEventAsync
(
new
RoleUsersRequestedEvent
<
TUsersDto
>(
usersDto
));
return
usersDto
;
}
}
public
virtual
async
Task
<
TUsersDto
>
GetClaimUsersAsync
(
string
claimType
,
string
claimValue
,
int
page
=
1
,
int
pageSize
=
10
)
{
var
pagedList
=
await
IdentityRepository
.
GetClaimUsersAsync
(
claimType
,
claimValue
,
page
,
pageSize
);
var
usersDto
=
Mapper
.
Map
<
TUsersDto
>(
pagedList
);
await
AuditEventLogger
.
LogEventAsync
(
new
ClaimUsersRequestedEvent
<
TUsersDto
>(
usersDto
));
return
usersDto
;
}
public
virtual
async
Task
<
TRolesDto
>
GetRolesAsync
(
string
search
,
int
page
=
1
,
int
pageSize
=
10
)
{
PagedList
<
TRole
>
pagedList
=
await
IdentityRepository
.
GetRolesAsync
(
search
,
page
,
pageSize
);
...
...
This diff is collapsed.
Click to expand it.
src/Skoruba.IdentityServer4.Admin.BusinessLogic.Identity/Services/Interfaces/IIdentityService.cs
View file @
62766cf0
...
...
@@ -34,7 +34,9 @@ namespace Skoruba.IdentityServer4.Admin.BusinessLogic.Identity.Services.Interfac
Task
<
bool
>
ExistsRoleAsync
(
string
roleId
);
Task
<
TUsersDto
>
GetUsersAsync
(
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
TUsersDto
>
GetRoleUsersAsync
(
string
roleId
,
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
TUsersDto
>
GetRoleUsersAsync
(
string
roleId
,
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
TUsersDto
>
GetClaimUsersAsync
(
string
claimType
,
string
claimValue
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
TRolesDto
>
GetRolesAsync
(
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<(
IdentityResult
identityResult
,
TKey
roleId
)>
CreateRoleAsync
(
TRoleDto
role
);
...
...
This diff is collapsed.
Click to expand it.
src/Skoruba.IdentityServer4.Admin.EntityFramework.Identity/Repositories/IdentityRepository.cs
View file @
62766cf0
...
...
@@ -111,6 +111,25 @@ namespace Skoruba.IdentityServer4.Admin.EntityFramework.Identity.Repositories
pagedList
.
TotalCount
=
await
users
.
CountAsync
();
pagedList
.
PageSize
=
pageSize
;
return
pagedList
;
}
public
virtual
async
Task
<
PagedList
<
TUser
>>
GetClaimUsersAsync
(
string
claimType
,
string
claimValue
,
int
page
=
1
,
int
pageSize
=
10
)
{
var
pagedList
=
new
PagedList
<
TUser
>();
var
users
=
DbContext
.
Set
<
TUser
>()
.
Join
(
DbContext
.
Set
<
TUserClaim
>(),
u
=>
u
.
Id
,
uc
=>
uc
.
UserId
,
(
u
,
uc
)
=>
new
{
u
,
uc
})
.
Where
(
t
=>
t
.
uc
.
ClaimType
.
Equals
(
claimType
))
.
WhereIf
(!
string
.
IsNullOrEmpty
(
claimValue
),
t
=>
t
.
uc
.
ClaimValue
.
Equals
(
claimValue
))
.
Select
(
t
=>
t
.
u
).
Distinct
();
var
pagedUsers
=
await
users
.
PageBy
(
x
=>
x
.
Id
,
page
,
pageSize
)
.
ToListAsync
();
pagedList
.
Data
.
AddRange
(
pagedUsers
);
pagedList
.
TotalCount
=
await
users
.
CountAsync
();
pagedList
.
PageSize
=
pageSize
;
return
pagedList
;
}
...
...
This diff is collapsed.
Click to expand it.
src/Skoruba.IdentityServer4.Admin.EntityFramework.Identity/Repositories/Interfaces/IIdentityRepository.cs
View file @
62766cf0
...
...
@@ -22,7 +22,9 @@ namespace Skoruba.IdentityServer4.Admin.EntityFramework.Identity.Repositories.In
Task
<
PagedList
<
TUser
>>
GetUsersAsync
(
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
PagedList
<
TUser
>>
GetRoleUsersAsync
(
string
roleId
,
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
PagedList
<
TUser
>>
GetRoleUsersAsync
(
string
roleId
,
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
PagedList
<
TUser
>>
GetClaimUsersAsync
(
string
claimType
,
string
claimValue
,
int
page
=
1
,
int
pageSize
=
10
);
Task
<
PagedList
<
TRole
>>
GetRolesAsync
(
string
search
,
int
page
=
1
,
int
pageSize
=
10
);
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment