Commit 386cd1b5 authored by Andreas Heimann's avatar Andreas Heimann

first batch of emails

parent ac82e54e
...@@ -237,13 +237,24 @@ class ModerationController extends AbstractController ...@@ -237,13 +237,24 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/reports/user/{reportId}/status/{newStatus}", name="moderation.reports.user.changeStatus") * @Route("/moderation/reports/user/{reportId}/status/{newStatus}", name="moderation.reports.user.changeStatus")
*/ */
public function reportsUserChangeStatus(Request $request, int $reportId, int $newStatus) public function reportsUserChangeStatus(Request $request, int $reportId, int $newStatus, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
$reportToChange = $em->getRepository(UserReport::class)->findOneBy(array('id' => $reportId)); $reportToChange = $em->getRepository(UserReport::class)->findOneBy(array('id' => $reportId));
$message = (new \Swift_Message('[#USER-'.$reportToChange->getId().'] Your reports status changed!'))
->setFrom('legal@spinsha.re')
->setTo($reportToChange->getEmail())
->setBody(
$this->renderView(
'emails/moderation/changeStatus.txt.twig',
['report' => $reportToChange, 'type' => 'USER']
), 'text/plain');
$mailer->send($message);
$reportToChange->setStatus($newStatus); $reportToChange->setStatus($newStatus);
$em->persist($reportToChange); $em->persist($reportToChange);
...@@ -277,13 +288,24 @@ class ModerationController extends AbstractController ...@@ -277,13 +288,24 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/reports/song/{reportId}/status/{newStatus}", name="moderation.reports.song.changeStatus") * @Route("/moderation/reports/song/{reportId}/status/{newStatus}", name="moderation.reports.song.changeStatus")
*/ */
public function reportsSongChangeStatus(Request $request, int $reportId, int $newStatus) public function reportsSongChangeStatus(Request $request, int $reportId, int $newStatus, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
$reportToChange = $em->getRepository(SongReport::class)->findOneBy(array('id' => $reportId)); $reportToChange = $em->getRepository(SongReport::class)->findOneBy(array('id' => $reportId));
$message = (new \Swift_Message('[#SONG-'.$reportToChange->getId().'] Your reports status changed!'))
->setFrom('legal@spinsha.re')
->setTo($reportToChange->getEmail())
->setBody(
$this->renderView(
'emails/moderation/changeStatus.txt.twig',
['report' => $reportToChange, 'type' => 'SONG']
), 'text/plain');
$mailer->send($message);
$reportToChange->setStatus($newStatus); $reportToChange->setStatus($newStatus);
$em->persist($reportToChange); $em->persist($reportToChange);
...@@ -295,13 +317,24 @@ class ModerationController extends AbstractController ...@@ -295,13 +317,24 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/song/{songId}/remove", name="moderation.song.remove") * @Route("/moderation/song/{songId}/remove", name="moderation.song.remove")
*/ */
public function songRemove(Request $request, int $songId) public function songRemove(Request $request, int $songId, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
$songToRemove = $em->getRepository(Song::class)->findOneBy(array('id' => $songId)); $songToRemove = $em->getRepository(Song::class)->findOneBy(array('id' => $songId));
$uploaderId = $songToRemove->getUploader(); $uploader = $em->getRepository(Song::class)->findOneBy(array('id' => $songToRemove->getUploader()));
$message = (new \Swift_Message('Your song '.$songToRemove->getTitle().' was removed!'))
->setFrom('legal@spinsha.re')
->setTo($uploader->getEmail())
->setBody(
$this->renderView(
'emails/moderation/songRemoved.txt.twig',
['song' => $songToRemove]
), 'text/plain');
$mailer->send($message);
// Remove .srtb File // Remove .srtb File
try { try {
...@@ -330,19 +363,20 @@ class ModerationController extends AbstractController ...@@ -330,19 +363,20 @@ class ModerationController extends AbstractController
$em->remove($songToRemove); $em->remove($songToRemove);
$em->flush(); $em->flush();
return $this->redirectToRoute('user.detail', array('userId' => $uploaderId)); return $this->redirectToRoute('user.detail', array('userId' => $uploader->getId()));
} }
/** /**
* @Route("/moderation/reports/song/{reportId}/remove", name="moderation.reports.song.remove") * @Route("/moderation/reports/song/{reportId}/remove", name="moderation.reports.song.remove")
*/ */
public function reportsSongRemove(Request $request, int $reportId) public function reportsSongRemove(Request $request, int $reportId, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
$report = $em->getRepository(SongReport::class)->findOneBy(array('id' => $reportId)); $report = $em->getRepository(SongReport::class)->findOneBy(array('id' => $reportId));
$reportSong = $em->getRepository(Song::class)->findOneBy(array('id' => $report->getSongId())); $reportSong = $em->getRepository(Song::class)->findOneBy(array('id' => $report->getSongId()));
$reportSongUploader = $em->getRepository(User::class)->findOneBy(array('id' => $reportSong->getUploader()));
// Remove .srtb File // Remove .srtb File
try { try {
...@@ -368,6 +402,19 @@ class ModerationController extends AbstractController ...@@ -368,6 +402,19 @@ class ModerationController extends AbstractController
} }
$message = (new \Swift_Message('Your song '.$reportSong->getTitle().' was removed!'))
->setFrom('legal@spinsha.re')
->setTo($reportSongUploader->getEmail())
->setBody(
$this->renderView(
'emails/moderation/songRemovedReport.txt.twig',
['song' => $reportSong, 'report' => $report]
), 'text/plain');
// TODO: Email to reporter that action was taken
$mailer->send($message);
$em->remove($reportSong); $em->remove($reportSong);
$em->flush(); $em->flush();
...@@ -377,7 +424,7 @@ class ModerationController extends AbstractController ...@@ -377,7 +424,7 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/user/ban/{userId}", name="moderation.user.ban") * @Route("/moderation/user/ban/{userId}", name="moderation.user.ban")
*/ */
public function userBan(Request $request, int $userId) public function userBan(Request $request, int $userId, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
...@@ -385,6 +432,8 @@ class ModerationController extends AbstractController ...@@ -385,6 +432,8 @@ class ModerationController extends AbstractController
$userToBan = $em->getRepository(User::class)->findOneBy(array('id' => $userId)); $userToBan = $em->getRepository(User::class)->findOneBy(array('id' => $userId));
$userToBan->setEnabled(false); $userToBan->setEnabled(false);
// TODO: Email to user that he got banned
$em->persist($userToBan); $em->persist($userToBan);
$em->flush(); $em->flush();
...@@ -394,7 +443,7 @@ class ModerationController extends AbstractController ...@@ -394,7 +443,7 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/user/unban/{userId}", name="moderation.user.unban") * @Route("/moderation/user/unban/{userId}", name="moderation.user.unban")
*/ */
public function userUnban(Request $request, int $userId) public function userUnban(Request $request, int $userId, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
...@@ -402,6 +451,8 @@ class ModerationController extends AbstractController ...@@ -402,6 +451,8 @@ class ModerationController extends AbstractController
$userToUnban = $em->getRepository(user::class)->findOneBy(array('id' => $userId)); $userToUnban = $em->getRepository(user::class)->findOneBy(array('id' => $userId));
$userToUnban->setEnabled(true); $userToUnban->setEnabled(true);
// TODO: Email to user that he got unbanned
$em->persist($userToUnban); $em->persist($userToUnban);
$em->flush(); $em->flush();
...@@ -411,7 +462,7 @@ class ModerationController extends AbstractController ...@@ -411,7 +462,7 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/user/toggleVerified/{userId}", name="moderation.user.toggleVerified") * @Route("/moderation/user/toggleVerified/{userId}", name="moderation.user.toggleVerified")
*/ */
public function userToggleVerified(Request $request, int $userId) public function userToggleVerified(Request $request, int $userId, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
...@@ -419,6 +470,8 @@ class ModerationController extends AbstractController ...@@ -419,6 +470,8 @@ class ModerationController extends AbstractController
$userToToggle = $em->getRepository(user::class)->findOneBy(array('id' => $userId)); $userToToggle = $em->getRepository(user::class)->findOneBy(array('id' => $userId));
$userToToggle->setIsVerified(!$userToToggle->getIsVerified()); $userToToggle->setIsVerified(!$userToToggle->getIsVerified());
// TODO: Email to user that he got verified
$em->persist($userToToggle); $em->persist($userToToggle);
$em->flush(); $em->flush();
...@@ -428,7 +481,7 @@ class ModerationController extends AbstractController ...@@ -428,7 +481,7 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/user/toggleMod/{userId}", name="moderation.user.toggleMod") * @Route("/moderation/user/toggleMod/{userId}", name="moderation.user.toggleMod")
*/ */
public function userToggleMod(Request $request, int $userId) public function userToggleMod(Request $request, int $userId, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
...@@ -441,6 +494,8 @@ class ModerationController extends AbstractController ...@@ -441,6 +494,8 @@ class ModerationController extends AbstractController
$userToToggle->addRole("ROLE_MODERATOR"); $userToToggle->addRole("ROLE_MODERATOR");
} }
// TODO: Email to user that he received mod status or got demoted
$em->persist($userToToggle); $em->persist($userToToggle);
$em->flush(); $em->flush();
...@@ -450,7 +505,7 @@ class ModerationController extends AbstractController ...@@ -450,7 +505,7 @@ class ModerationController extends AbstractController
/** /**
* @Route("/moderation/user/resetAvatar/{userId}", name="moderation.user.resetAvatar") * @Route("/moderation/user/resetAvatar/{userId}", name="moderation.user.resetAvatar")
*/ */
public function userResetAvatar(Request $request, int $userId) public function userResetAvatar(Request $request, int $userId, \Swift_Mailer $mailer)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$data = []; $data = [];
...@@ -468,6 +523,8 @@ class ModerationController extends AbstractController ...@@ -468,6 +523,8 @@ class ModerationController extends AbstractController
} }
// TODO: Email to user that his avatar was reset
// Remove Entity // Remove Entity
$em->persist($userToReset); $em->persist($userToReset);
$em->flush(); $em->flush();
......
Hey there!
{% if report.status == 0 %}
The status of your report #{{ type }}-{{ report.id }} has been changed to "Unanswered".
{% elseif report.status == 1 %}
The status of your report #{{ type }}-{{ report.id }} has been changed to "In Contact".
{% elseif report.status == 2 %}
The status of your report #{{ type }}-{{ report.id }} has been changed to "Resolved".
{% endif %}
If you think this was a mistake, please report back to legal@spinsha.re with your report id shown above.
------------------
spinsha.re
\ No newline at end of file
Hey there!
We are sorry to inform you that your song "{{ song.title }} - {{ song.artist }}" was removed by a moderator of our team.
This action is permanent and cannot be undone.
------------------
spinsha.re
\ No newline at end of file
Hey there!
We are sorry to inform you that your song "{{ song.title }} - {{ song.artist }}" was removed by a moderator of our team.
Your song was reported by {{ report.name }}. The reason they gave us was:
{% if report.reason == "dmca" %}
This song contains someone elses intellectual property (DMCA Takedown)
{% elseif report.reason == "broken" %}
This song is broken
{% elseif report.reason == "spam" %}
This song is spam
{% elseif report.reason == "metadata" %}
This song has wrong meta data
{% elseif report.reason == "other" %}
Unspecified reson
{% endif %}
This action is permanent and cannot be undone.
------------------
spinsha.re
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment