Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
B
Backend Server
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SpinShare
Backend Server
Commits
386cd1b5
Commit
386cd1b5
authored
Apr 13, 2020
by
Andreas Heimann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
first batch of emails
parent
ac82e54e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
110 additions
and
11 deletions
+110
-11
src/Controller/ModerationController.php
src/Controller/ModerationController.php
+68
-11
templates/emails/moderation/changeStatus.txt.twig
templates/emails/moderation/changeStatus.txt.twig
+14
-0
templates/emails/moderation/songRemoved.txt.twig
templates/emails/moderation/songRemoved.txt.twig
+8
-0
templates/emails/moderation/songRemovedReport.txt.twig
templates/emails/moderation/songRemovedReport.txt.twig
+20
-0
No files found.
src/Controller/ModerationController.php
View file @
386cd1b5
...
@@ -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'
=>
$uploader
Id
));
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
{
...
@@ -367,6 +401,19 @@ class ModerationController extends AbstractController
...
@@ -367,6 +401,19 @@ class ModerationController extends AbstractController
}
catch
(
FileNotFoundException
$e
)
{
}
catch
(
FileNotFoundException
$e
)
{
}
}
$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
();
...
...
templates/emails/moderation/changeStatus.txt.twig
0 → 100644
View file @
386cd1b5
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
templates/emails/moderation/songRemoved.txt.twig
0 → 100644
View file @
386cd1b5
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
templates/emails/moderation/songRemovedReport.txt.twig
0 → 100644
View file @
386cd1b5
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment