43 lines
1.3 KiB
C#
43 lines
1.3 KiB
C#
using AipsCore.Domain.Common.Validation;
|
|
using AipsCore.Domain.Models.User.ValueObjects;
|
|
using AipsCore.Domain.Models.Whiteboard.Validation;
|
|
|
|
namespace AipsCore.Domain.Models.Whiteboard;
|
|
|
|
public partial class Whiteboard
|
|
{
|
|
public void BanUser(UserId currentUserId, WhiteboardMembership.WhiteboardMembership whiteboardMembership)
|
|
{
|
|
if (IsOwner(currentUserId))
|
|
{
|
|
throw new ValidationException(WhiteboardErrors.OnlyOwnerCanBanOtherUsers(currentUserId));
|
|
}
|
|
|
|
whiteboardMembership.Ban();
|
|
}
|
|
|
|
public void UnbanUser(UserId currentUserId, WhiteboardMembership.WhiteboardMembership whiteboardMembership)
|
|
{
|
|
if (IsOwner(currentUserId))
|
|
{
|
|
throw new ValidationException(WhiteboardErrors.OnlyOwnerCanUnbanOtherUsers(currentUserId));
|
|
}
|
|
|
|
whiteboardMembership.Unban();
|
|
}
|
|
|
|
public void KickUser(UserId currentUserId, WhiteboardMembership.WhiteboardMembership whiteboardMembership)
|
|
{
|
|
if (IsOwner(currentUserId))
|
|
{
|
|
throw new ValidationException(WhiteboardErrors.OnlyOwnerCanKickOtherUsers(currentUserId));
|
|
}
|
|
|
|
whiteboardMembership.Kick();
|
|
}
|
|
|
|
private bool IsOwner(UserId userId)
|
|
{
|
|
return WhiteboardOwnerId.IdValue == userId.IdValue;
|
|
}
|
|
} |