3.3 KiB
Moderator access
MineGeo checks public.profiles.role on the server for every moderation request. A contributor cannot change their own role through the website or Supabase's public API. No Discord role, JWT metadata, or additional plugin is required.
- Have the moderator sign in to MineGeo and open their dashboard once.
- In the MineGeo Supabase project, open Authentication → Users and copy that person's user UUID.
- Open Table Editor → public.profiles, find the matching
id, and setroletomoderator. Keep the existing ID and display name. - The moderator can open
/moderation, inspect each location in 360°, approve a submitted map, return it with feedback, unpublish a map, and resolve community reports. The role takes effect on the next request.
Alternatively, the project owner can run this in Supabase's SQL Editor, replacing the email with the intended account:
insert into public.profiles (id, role)
select id, 'moderator'
from auth.users
where lower(email) = lower('moderator@example.com')
on conflict (id) do update set role = excluded.role
returning id, role;
The query must return the intended user's ID. An empty result means the person has not signed in with that email yet. To remove moderator access, change that profile's role back to contributor.
Treat the website role separately from Supabase organization membership: moderators do not need access to your Supabase project or its secret key. The existing test moderator account is a verification fixture; it does not grant access to your personal account.
First beta map
Published-map updates now have their own review state. Owners approve player submissions first and submit the combined map update; Approve update publishes a new immutable revision. Returning an update with feedback keeps the previous version playable. See panorama contributions.
After deploying the updated website and worker:
- Open the private draft in
/dashboard. Use Look around to inspect its complete panorama, including terrain near the edge of the export. - Keep at least five usable locations. Saved exclusions can now be restored after a reload. Locations removed by older versions cannot be recovered unless the original capture manifest is available.
- Save and submit the map for review.
- A moderator opens
/moderation, checks Inspect 360° locations, and approves the map. It then appears in Play & maps and visitors can play without signing in.
The rendering fix must run on existing images as well as new uploads. This session repaired the private draft 00ff0076-cae1-4a0d-ab81-9014833309f4 in Supabase while preserving its ten selected locations, metadata and original terrain upload. Refresh its preview to see the corrected textures.
For another completed private plugin draft with the same rendering issue:
npm run repair:panoramas -- <dataset UUID>
This command renders and verifies the original terrain first, then replaces the draft's private media. It refuses published revisions, maps under review, and active/failed processing jobs. For failed processing, use the existing npm run reprocess -- <dataset UUID> recovery workflow instead. Server-generated views retain simplified lighting and biome color approximations; entities, custom packs and dynamic sign text remain outside the capture scope.