72 lines
2.2 KiB
C#
72 lines
2.2 KiB
C#
|
using SecurityContext = ASC.Core.SecurityContext;
|
|||
|
|
|||
|
namespace ASC.People.Api;
|
|||
|
|
|||
|
public class NotificationController : BaseApiController
|
|||
|
{
|
|||
|
private readonly CommonLinkUtility _commonLinkUtility;
|
|||
|
|
|||
|
public NotificationController(
|
|||
|
UserManager userManager,
|
|||
|
AuthContext authContext,
|
|||
|
ApiContext apiContext,
|
|||
|
PermissionContext permissionContext,
|
|||
|
SecurityContext securityContext,
|
|||
|
MessageService messageService,
|
|||
|
MessageTarget messageTarget,
|
|||
|
StudioNotifyService studioNotifyService,
|
|||
|
CommonLinkUtility commonLinkUtility)
|
|||
|
: base(
|
|||
|
userManager,
|
|||
|
authContext,
|
|||
|
apiContext,
|
|||
|
permissionContext,
|
|||
|
securityContext,
|
|||
|
messageService,
|
|||
|
messageTarget,
|
|||
|
studioNotifyService)
|
|||
|
{
|
|||
|
_commonLinkUtility = commonLinkUtility;
|
|||
|
}
|
|||
|
|
|||
|
[Create("phone")]
|
|||
|
public object SendNotificationToChangeFromBody([FromBody] UpdateMemberRequestDto model)
|
|||
|
{
|
|||
|
return SendNotificationToChange(model.UserId);
|
|||
|
}
|
|||
|
|
|||
|
[Create("phone")]
|
|||
|
[Consumes("application/x-www-form-urlencoded")]
|
|||
|
public object SendNotificationToChangeFromForm([FromForm] UpdateMemberRequestDto model)
|
|||
|
{
|
|||
|
return SendNotificationToChange(model.UserId);
|
|||
|
}
|
|||
|
|
|||
|
private object SendNotificationToChange(string userId)
|
|||
|
{
|
|||
|
var user = UserManager.GetUsers(
|
|||
|
string.IsNullOrEmpty(userId)
|
|||
|
? SecurityContext.CurrentAccount.ID
|
|||
|
: new Guid(userId));
|
|||
|
var canChange =
|
|||
|
user.IsMe(AuthContext)
|
|||
|
|| PermissionContext.CheckPermissions(new UserSecurityProvider(user.ID), Constants.Action_EditUser);
|
|||
|
|
|||
|
if (!canChange)
|
|||
|
{
|
|||
|
throw new SecurityAccessDeniedException(Resource.ErrorAccessDenied);
|
|||
|
}
|
|||
|
|
|||
|
user.MobilePhoneActivationStatus = MobilePhoneActivationStatus.NotActivated;
|
|||
|
UserManager.SaveUserInfo(user);
|
|||
|
if (user.IsMe(AuthContext))
|
|||
|
{
|
|||
|
return _commonLinkUtility.GetConfirmationUrl(user.Email, ConfirmType.PhoneActivation);
|
|||
|
}
|
|||
|
|
|||
|
StudioNotifyService.SendMsgMobilePhoneChange(user);
|
|||
|
|
|||
|
return string.Empty;
|
|||
|
}
|
|||
|
}
|