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;
|
|
}
|
|
}
|