# Update our admins and moderator shields

**URL:** https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203
**Category:** Feature
**Tags:** moderation
**Created:** [June 14, 2025, 4:48pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203 "2025-06-14T16:48:47Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![Encounter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/encounter/32/507656_2.png) [@Encounter](https://meta.discourse.org/u/Encounter)
#### Post date: [June 14, 2025, 4:48pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/1 "2025-06-14T16:48:47Z")

</div>

So currently on any given forum an admin has the ability to demote any other admin out of the admin position so I was thinking what if we change it to be that The account who is the owner their shield isn’t the normal gray one its a green halved shield and they cant be demoted by admins and moderators are gray and regular admins are blue to differentiate different account types but if the owner wants they can change someone else on the forum to have the green shield giving themselves the blue shield and now the new green shield holder cant be demoted.

---

<div class="post-metadata">

### Author: ![ondrej](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ondrej/32/198804_2.png) [@ondrej](https://meta.discourse.org/u/ondrej)
#### Post date: [June 14, 2025, 5:37pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/2 "2025-06-14T17:37:48Z")

</div>

Welcome to Discourse Meta @Encounter 👋 🎉

> [@Encounter](#):
>
> an admin has the ability to demote any other admin out of the admin position
> 
> > [@Encounter](#):
> >
> > The account who is the owner their shield isn’t the normal gray one its a green halved shield and they cant be demoted by admins

An admin who owns/created the forum cannot be ‘demoted’ as their email is in DISCOURSE\_DEVELOPER\_EMAILS inside app.yml.

If you are self hosted and don’t want other admins getting demoted just add them to the developer emails and do a rebuild.

You could also explain to other admins not to demote others if you don’t want to make changes to developer emails. As a side note… As you’d expect being an admin is a powerful position, and ideally you don’t want many people with those privileges.

* * *

If you wanted to change the shield colour of admins and moderators to help differentiate them, you can have a look at this guide:

> [@Make staff users more recognizable with customized avatars, posts, and mentions](https://meta.discourse.org/t/make-staff-users-more-recognizable-with-customized-avatars-posts-and-mentions/142794):
>
> There are various methods that can be used to make a staff user immediately recognizable to other users. Show moderator shield Any staff user who is moderator, or admin and moderator, will have the moderator shield next to the username. left_speech_bubble Tips: the shield will not appear if the staff user has the role of admin but not moderator. CSS to change color of the shield play_button Change color for all Staff usersplay_button Change color differentiating ADMIN users from MOD users CSS to h…

You can also use titles. For example the admin who owns the community could be given an ‘owner’ title so that everyone knows who not to demote if that is what you are worried about?

Hope this helps 😉

---

<div class="post-metadata">

### Author: ![ToddZ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/toddz/32/328350_2.png) [@ToddZ](https://meta.discourse.org/u/ToddZ)
#### Post date: [June 15, 2025, 5:13am UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/3 "2025-06-15T05:13:11Z")

</div>

Setting aside shield colors for the moment – is there a specific situation you’re trying to handle with this request?

I’m imagining edge cases like:

1. letting the site owner transfer site ownership to somebody else
2. making an _additional_ admin un-demoteable

But either thing seems like a rare occasion, and needing to edit the app.yml file as [ondrej explains](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/2) seems pretty reasonable.

---

<div class="post-metadata">

### Author: ![Encounter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/encounter/32/507656_2.png) [@Encounter](https://meta.discourse.org/u/Encounter)
#### Post date: [June 15, 2025, 2:08pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/4 "2025-06-15T14:08:27Z")

</div>

Hello ondrej thanks for Mentioning that they cant be removed from the admin role but I beg to differ this.  
on a free trial discourse forum I made I had granted admin to 2 other people and mistake on my part but they removed my admin and moderator roles and ended up banning me from the forum which is why I asked and also take a look at this

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/6/d/d6d3b0fad8c0e60027750b0bfd6a8c3f1c48d976.png)

im not the owner of that forum but merely the user here on the picture is and I can revoke their admin

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [June 15, 2025, 3:08pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/5 "2025-06-15T15:08:25Z")

</div>

> [@ondrej](#):
>
> An admin who owns/created the forum cannot be ‘demoted’ as their email is in DISCOURSE\_DEVELOPER\_EMAILS inside app.yml.

Ondrej was talking about self-hosted forums, where someone creates the forum and also has access to the server. So even if it was possible for another admin to remove their admin status, they could create a new admin account.

> [@Encounter](#):
>
> on a free trial discourse forum

You didn’t mention you were talking about a forum hosted by Discourse. I don’t think Discourse ensures that the first admin isn’t removed on their hosting. I can imagine it’s not that rare for someone to create a forum, leave a company later, and then the first admin needs to be replaced, so it makes sense to me to allow that.  
I guess, in the worst case, if you accidentally grant admin permissions and confirm it via email, you could contact their support, and they could check who created the forum.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [June 15, 2025, 3:14pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/6 "2025-06-15T15:14:29Z")

</div>

> [@Encounter](#):
>
> on a free trial discourse forum I made I had granted admin to 2 other people and mistake on my part but they removed my admin and moderator roles and ended up banning me from the forum which is why I asked

Hello and welcome @Encounter 🙂

Just to say firstly, if you’re having any issues with your free trial for any reason then you can contact customer support directly at [team@discourse.org](mailto:team@discourse.org) and they can help you out. 👍

But secondly, the hosted versions are a little different to the self-hosted ones, and if you’re on a hosted plan then the first admin doesn’t get to be extra special like the type Ondrej and Toddz are referring to.

(Though saying that, I’ve just managed to demote my main admin account with a test user admin on my self-hosted test site, so I may need to investigate what’s going on with that if I’m meant to be un-demotable 🙂)

---

<div class="post-metadata">

### Author: ![Encounter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/encounter/32/507656_2.png) [@Encounter](https://meta.discourse.org/u/Encounter)
#### Post date: [June 15, 2025, 3:21pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/7 "2025-06-15T15:21:14Z")

</div>

> [@JammyDodger](#):
>
> Just to say firstly, if you’re having any issues with your free trial for any reason then you can contact customer support directly at [team@discourse.org](mailto:team@discourse.org) and they can help you out. 👍

understandable so after that incedent I quote the reply to my issue email to them saying this  
“were sorry there is nothing were able to do to help you”  
then they said they shut down the forum for that.

but then why on the above picture

> [@Encounter](#):
>
> ![image](https://global.discourse-cdn.com/meta/original/4X/d/6/d/d6d3b0fad8c0e60027750b0bfd6a8c3f1c48d976.png)

I can demote this user and he is the owner of the forum but the forum is self hosted

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [June 15, 2025, 3:32pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/8 "2025-06-15T15:32:30Z")

</div>

> [@Encounter](#):
>
> understandable so after that incedent I quote the reply to my issue email to them saying this  
> “were sorry there is nothing were able to do to help you”  
> then they said they shut down the forum for that.

I think because it was a free trial then that may have been the smoothest solution to a rather awkward problem. But if you do start a new trial then be very careful about who you grant admin to. 🙏

> [@Encounter](#):
>
> I can demote this user and he is the owner of the forum but the forum is self hosted

Yes, I’m seeing similar in my self-hosted site. Though mine has been round the block a bit as a test site so I may have done something weird at some point. 🙂

Though as I have server access I can create and grant admin from there, so hopefully I’m covered if my test users turn mutinous. 🙂

---

<div class="post-metadata">

### Author: ![Encounter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/encounter/32/507656_2.png) [@Encounter](https://meta.discourse.org/u/Encounter)
#### Post date: [June 15, 2025, 3:34pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/9 "2025-06-15T15:34:07Z")

</div>

Great thanks for the help jammy 🙂

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [June 16, 2025, 12:05am UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/10 "2025-06-16T00:05:45Z")

</div>

> [@JammyDodger](#):
>
> Though as I have server access I can create and grant admin from there, so hopefully I’m covered if my test users turn mutinous. 🙂

Yes - this is the ultimate solution for self-hosters. He who controls the server (and the domain / DNS records) has the true power!!

---

<div class="post-metadata">

### Author: ![Encounter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/encounter/32/507656_2.png) [@Encounter](https://meta.discourse.org/u/Encounter)
#### Post date: [June 16, 2025, 12:06am UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/11 "2025-06-16T00:06:22Z")

</div>

What do you mean by that?

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [June 16, 2025, 12:21am UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/12 "2025-06-16T00:21:34Z")

</div>

Because with access to the server and the command line, you could do many (hacky) things (like rebaking posts, accessing the database, etc). So if you’re self-hosted and other sdmins demote you, but you have access to the server the forum runs on, then you could [Create an admin account from the console](https://meta.discourse.org/t/create-an-admin-account-from-the-console/17274).

---

<div class="post-metadata">

### Author: ![Encounter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/encounter/32/507656_2.png) [@Encounter](https://meta.discourse.org/u/Encounter)
#### Post date: [June 16, 2025, 12:22am UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/13 "2025-06-16T00:22:36Z")

</div>

right that is ture

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [July 2, 2025, 12:26pm UTC](https://meta.discourse.org/t/update-our-admins-and-moderator-shields/370203/14 "2025-07-02T12:26:27Z")

</div>

> [@JammyDodger](#):
>
> (Though saying that, I’ve just managed to demote my main admin account with a test user admin on my self-hosted test site, so I may need to investigate what’s going on with that if I’m meant to be un-demotable 🙂)

Just to circle back and round this out…

For those admin who are set in the `DISCOURSE_DEVELOPER_EMAILS`, the trigger to be automatically re-added as admin after being demoted is log-out/login.

(I initially thought it was going to be on rebuild, but this way does make more sense 🙂)
