Abp模块
abp
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

160 lines
4.7 KiB

using Microsoft.AspNetCore.Mvc;
using Sanhe.Abp.Identity.Dto;
using System;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Identity;
namespace Sanhe.Abp.Identity
{
[RemoteService(true, Name = IdentityRemoteServiceConsts.RemoteServiceName)]
[Area("identity")]
[ControllerName("User")]
[Route("api/identity/users")]
public class IdentityUserController : AbpController, IIdentityUserAppService
{
protected IIdentityUserAppService UserAppService { get; }
public IdentityUserController(IIdentityUserAppService userAppService)
{
UserAppService = userAppService;
}
#region OrganizationUnit
/// <summary>
/// 获取该用户的组织单位
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("{id}/organization-units")]
public virtual Task<ListResultDto<OrganizationUnitDto>> GetOrganizationUnitsAsync(Guid id)
{
return UserAppService.GetOrganizationUnitsAsync(id);
}
/// <summary>
/// 修改该用户组织单位
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPut]
[Route("{id}/organization-units")]
public virtual Task SetOrganizationUnitsAsync(Guid id, IdentityUserOrganizationUnitUpdateDto input)
{
return UserAppService.SetOrganizationUnitsAsync(id, input);
}
/// <summary>
/// 删除该用户组织单位
/// </summary>
/// <param name="id"></param>
/// <param name="ouId"></param>
/// <returns></returns>
[HttpDelete]
[Route("{id}/organization-units/{ouId}")]
public virtual Task RemoveOrganizationUnitsAsync(Guid id, Guid ouId)
{
return UserAppService.RemoveOrganizationUnitsAsync(id, ouId);
}
#endregion
#region Claim
/// <summary>
/// 获取用户身份声明
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("{id}/claims")]
public virtual Task<ListResultDto<IdentityClaimDto>> GetClaimsAsync(Guid id)
{
return UserAppService.GetClaimsAsync(id);
}
/// <summary>
/// 创建用户身份声明
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("{id}/claims")]
public virtual Task AddClaimAsync(Guid id, IdentityUserClaimCreateDto input)
{
return UserAppService.AddClaimAsync(id, input);
}
/// <summary>
/// 修改用户身份声明
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPut]
[Route("{id}/claims")]
public virtual Task UpdateClaimAsync(Guid id, IdentityUserClaimUpdateDto input)
{
return UserAppService.UpdateClaimAsync(id, input);
}
/// <summary>
/// 删除用户身份声明
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpDelete]
[Route("{id}/claims")]
public virtual Task DeleteClaimAsync(Guid id, IdentityUserClaimDeleteDto input)
{
return UserAppService.DeleteClaimAsync(id, input);
}
#endregion
/// <summary>
/// 变更用户双因素验证选项
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPut]
[Route("change-two-factor")]
public virtual Task ChangeTwoFactorEnabledAsync(Guid id, TwoFactorEnabledDto input)
{
return UserAppService.ChangeTwoFactorEnabledAsync(id, input);
}
/// <summary>
/// 锁定
/// </summary>
/// <param name="id">用户Id</param>
/// <param name="seconds">秒</param>
/// <returns></returns>
[HttpPut]
[Route("{id}/lock/{seconds}")]
public virtual Task LockAsync(Guid id, int seconds)
{
return UserAppService.LockAsync(id, seconds);
}
/// <summary>
/// 解锁
/// </summary>
/// <param name="id">用户Id</param>
/// <returns></returns>
[HttpPut]
[Route("{id}/unlock")]
public virtual Task UnLockAsync(Guid id)
{
return UserAppService.UnLockAsync(id);
}
}
}