# Approving User Submitted Images

**URL:** <https://community.glideapps.com/t/approving-user-submitted-images/3864>\
**Category:** Project Showcase\
**Created:** [January 22, 2020, 3:29pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864 "2020-01-22T15:29:32Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![spencersRus](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/spencersrus/32/69_2.png) [@spencersRus](https://community.glideapps.com/u/spencersRus)\
**Post date:** [January 22, 2020, 3:29pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/1 "2020-01-22T15:29:32Z")

</div>

I am working on an app that I want to be PUBLIC but want to be able to APPROVE any photos that are uploaded.

Here is a SAMPLE of what I have done :[https://lbdh9.glideapp.io](https://lbdh9.glideapp.io)

One tab mimics the USER interface, the other mimics a possible separate ADMIN app

On the USER tab of this app:

I have a FORM BUTTON that asks for a Photo and Caption and PREapproval Code (if they have it)

Below that, I also have tiles showing the photos that have been approved (either by the admin or a code)

This is coming from a COPY of the form (see the sheet)

Here is the filter:

![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/d/d6a6592f665dc05231a926b36616f2a53e0f3493.png)

So, if the user submits a photo, it is not IMMEDIATELY displayed on the front page (unless they have the right Approval Code.

On the ADMIN tab of the app:

In Data I have a column for Final Approval:

 ![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/0/08c040aa2210cf843179cc8e46c6a34d3fa1d1bd.png)

If it is not yet approved by me, or does not have the code, it says, “Needs Approval”

At the top,I have some tiles of the photos submitted with “Needs Approval” overtop of the image.

 ![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/3/3a9a9b827a93e0bcb9dd396330216d5c759a2e7c.png)

If I click on the “Needs Approval” image, I can ‘flip the switch’ to approve the photo.

![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/9/9e9bbc7d81714941419a145a162fc60b89ec73ec.png)

When I do this, the photo will then be displayed on the “Front Page” of the User app.

![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/7/7deee1373df277ea6332825e7f89c272b080e1ae.png)

If I ever want to remove a photo from the front, I have a list in the admin of ALL the photos, where I can slide the switch the other way.

![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/6/63d3fc92a84f28ef0ec2804492b2ba6436240aa7.png)

---

<div class="post-metadata">

**Author:** ![david](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/david/32/62831_2.png) [@david](https://community.glideapps.com/u/david)\
**Post date:** [January 22, 2020, 4:33pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/2 "2020-01-22T16:33:51Z")

</div>

This is a great approach, thank you for sharing.

---

<div class="post-metadata">

**Author:** ![spencersRus](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/spencersrus/32/69_2.png) [@spencersRus](https://community.glideapps.com/u/spencersRus)\
**Post date:** [January 22, 2020, 6:03pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/3 "2020-01-22T18:03:35Z")

</div>

Thanks David.

Go ahead. The app is ‘live’. Anyone can upload and approve right now!

---

<div class="post-metadata">

**Author:** ![zzoldan](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/zzoldan/32/452_2.png) [@zzoldan](https://community.glideapps.com/u/zzoldan)\
**Post date:** [January 22, 2020, 7:26pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/4 "2020-01-22T19:26:20Z")

</div>

How does one restrict an entire tab to admins only?

---

<div class="post-metadata">

**Author:** ![spencersRus](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/spencersrus/32/69_2.png) [@spencersRus](https://community.glideapps.com/u/spencersRus)\
**Post date:** [January 22, 2020, 8:19pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/5 "2020-01-22T20:19:44Z")

</div>

Not sure.

This is just an example app.

The ADMIN tab on the example is just for SHOW. I would build a whole new separate ADMIN app.

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [January 22, 2020, 8:26pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/6 "2020-01-22T20:26:52Z")

</div>

There’s a couple of ways to do this.

If you only have one admin, place their email on a sheet by itself. Then use the single value column to grab the email of the admin from the sheet and include it on the photos sheet.

Another method is to first place an Admin column on a user specific sheet. Fill that column with ‘Admin’ for those have admin rights. On the photos sheet create a template column and make the result of that column ‘Admin’. Next create a relation column to link the Admin column in the photos sheet to the Admin column in the users sheet. Finally create a lookup column in the photos sheet to get the emails from the relation.

Both methods will provide a column of admin emails that can be used for filtering the photos list.

---

<div class="post-metadata">

**Author:** ![zzoldan](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/zzoldan/32/452_2.png) [@zzoldan](https://community.glideapps.com/u/zzoldan)\
**Post date:** [January 22, 2020, 8:31pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/7 "2020-01-22T20:31:04Z")

</div>

Got it, thanks for clarifying!

---

<div class="post-metadata">

**Author:** ![spencersRus](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/spencersrus/32/69_2.png) [@spencersRus](https://community.glideapps.com/u/spencersRus)\
**Post date:** [January 22, 2020, 8:44pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/8 "2020-01-22T20:44:22Z")

</div>

Just making sure here. @Jeff_Hager

Your suggestions are for apps set to Public with email (or whitelist)

If I want my app to be Public (which is what I want), - an entire tab cannot be restricted?

or can it?

---

<div class="post-metadata">

**Author:** ![Rosewebstudio](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/rosewebstudio/32/12261_2.png) [@Rosewebstudio](https://community.glideapps.com/u/Rosewebstudio)\
**Post date:** [January 22, 2020, 8:56pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/9 "2020-01-22T20:56:27Z")

</div>

I need public too

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [January 22, 2020, 9:31pm UTC](https://community.glideapps.com/t/approving-user-submitted-images/3864/10 "2020-01-22T21:31:39Z")

</div>

No, this would only work for public with email and whitelist. In your case, two apps is the better option.
