Admin console
I need to create an admin console to show recent message edits/deletions, reports, and logins/logouts. I could also view all deleted messages and message edit histories, along with justifications.
The admin should also be able to change the TOS. (Idea: have a table for some config related items, have a column for a name and a column with json data for those values, then take the latest one matching the name. Also store the user who submitted the change.)
It would also be nice to have some graphs and tables showing the most prolific searchers. This data should be manually combed every time the page is loaded up, as if I store one statistic in the row of a user (e.g. # of searches), I should be storing more since they would load along with other statistics (like IPs logged in from). There is certainly a potential for performance benefits with larger deployments, but for now I will not precalculate any statistics.
Clicking on a user would bring up a profile where you can see exactly what they have searched, reported, edited, and deleted, and the IP addresses they have logged in from and done actions from. I could also modify their permissions level or ban them (temporarily or permanently).
Icing on the cake would be a permissions system with easily definable roles. That is, being able to create new roles and select what permissions they have. The cherry on top would be disallowing actions if you do not meet certain requirements, independent of permissions. For example, preventing editing/deleting messages if you do not have 2FA setup, and when you do have it setup, requiring TOTP code/U2F token to be used.
Definition of Done:
-
Contact form & messaging system -
Ban appeal permissions -
Disable deleting account on TOS acceptance page for banned users -
Reports system -
Page for users to view their reports and delete them (until resolved) -
Page for admins to manage reports -
Banner system for admin messages -
Page for admins to create banners with expiration time (show always for logged out users, show once after login) -
Add a flash level just for other flashes will not conflict with flash banners -
Log chat log searches -
Log report searches -
Log message/conversation searches -
Page for admins to view all logins/logouts -
Page for admins to view all chat log edits -
Page for admins to update the TOS -
Check user TOS acceptance ( eula_accepted_at
) to determine if the user must re-accept the TOS after it changes -
Page for admins to view all users and view their reports, messages, searches, bans given, and bans received, along with other profile info -
Individual pages for each search (i.e. show
view for a given search) that is linked to in Searches panel and User profile management panel -
Page for admins to define roles and grant/deny permissions- covered in #83