# League App ... entering scores (Admin rights)

**URL:** <https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219>\
**Category:** Ask for Help\
**Created:** [March 5, 2020, 9:31pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219 "2020-03-05T21:31:11Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![GRobbins](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/grobbins/32/3924_2.png) [@GRobbins](https://community.glideapps.com/u/GRobbins)\
**Post date:** [March 5, 2020, 9:31pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/1 "2020-03-05T21:31:11Z")

</div>

I have created a Glide App for sporting events which include players, events, and scores of these events.  
It allows users to add, edit, and delete. As an afterthought, I figure an unscrupulous user could corrupt the app’s data quite easily and devastate its purpose/usefulness! Thus, adding, editing and deleting scores, even players should be left to trusted users.

I’ve researched and read extensively about “admin” rights herein. If my research is correct, it seems I should create a separate app that has adding+editing rights and point both apps to the same sheet.

Prior to taking such a path, I felt those of you with expert knowledge may have an easier recommendation. Thank you in advance.

---

<div class="post-metadata">

**Author:** ![George\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/george_b/32/534_2.png) [@George\_B](https://community.glideapps.com/u/George_B)\
**Post date:** [March 5, 2020, 10:38pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/2 "2020-03-05T22:38:10Z")

</div>

I’m a bit of an advocate of separate Admin apps. It is required if you want your main users app to be Public (i.e. no email login). If you do have email login enabled or don’t mind implementing that, then it is possible to accomplish what you want within one app. There are a bunch of examples of how others have structured an app to have certain areas accessible to certain logged in users (aka administrators). @Jeff_Hager has a sample app that shows some of those concepts.

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [March 5, 2020, 11:09pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/3 "2020-03-05T23:09:21Z")

</div>

Yep. I also have just an Admin tab in my [itemstore.glideapp.io](http://itemstore.glideapp.io) app that has a form button to add items. With an admin tab, however, I am unable to utilize the “users can add/delete” feature as it would be available to all users.

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [March 6, 2020, 12:20am UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/4 "2020-03-06T00:20:01Z")

</div>

Well…check the most recent announcement!

> [@fountain\_pen Conditions for Edit and Delete](https://community.glideapps.com/t/conditions-for-edit-and-delete/5225):
>
> You can now set conditions on which items can be edited or deleted. For example, you might want all user profiles to be visible to everybody, but only editable by the user they belong to.

---

<div class="post-metadata">

**Author:** ![George\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/george_b/32/534_2.png) [@George\_B](https://community.glideapps.com/u/George_B)\
**Post date:** [March 6, 2020, 3:19am UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/5 "2020-03-06T03:19:26Z")

</div>

Yeah, things change rather rapidly. This opens up a whole new possibility for Admin users.

---

<div class="post-metadata">

**Author:** ![GRobbins](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/grobbins/32/3924_2.png) [@GRobbins](https://community.glideapps.com/u/GRobbins)\
**Post date:** [March 6, 2020, 4:20am UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/6 "2020-03-06T04:20:14Z")

</div>

I guess this is just good timing for me. Although I still need to figure is out from the start, it seems to be a solution from the reaction of all!

---

<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:** [March 6, 2020, 4:33am UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/7 "2020-03-06T04:33:31Z")

</div>

I’ll have to play with this in the next few days. I think this will make things much easier to manage.

---

<div class="post-metadata">

**Author:** ![GRobbins](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/grobbins/32/3924_2.png) [@GRobbins](https://community.glideapps.com/u/GRobbins)\
**Post date:** [March 6, 2020, 4:15pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/8 "2020-03-06T16:15:39Z")

</div>

Profiles —\> I’ve read some of the threads regarding this and am about to try and implement it into my league app. I have a tab named “Players” which has most of the pertinent data that the profile sample sheets I’ve seen include. It also has a relation to scores/results and event tabs.

Before getting too entrenched in the wrong direction, could I use the Players tab as my Profile tab or should I do as my intuition tells me and create a new profile tab as per the samples?

[k9ctd.glideapp.io](http://k9ctd.glideapp.io)

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [March 6, 2020, 5:11pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/9 "2020-03-06T17:11:30Z")

</div>

I use the “All Players” sheet as my source for a Profiles Tab. That being said, I’ve heard there will be some enhancements to user data in the very near future.

---

<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:** [March 7, 2020, 10:00pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/10 "2020-03-07T22:00:56Z")

</div>

I just did some really brief testing, but it looks like you can set it up so a user can edit/delete their own rows, and you can also have an admin sheet that contains the administrator emails. Then use the edit filtering to allow only the creator of the row and the admins to edit/delete data. Adding is up to you. Either have a separate section in your app that only admins can access, then provide a form button to add records to any sheet.

> [@fountain\_pen Conditions for Edit and Delete](https://community.glideapps.com/t/conditions-for-edit-and-delete/5225/20):
>
> Just curious what didn’t work? I think your relate/lookup situation would work just fine to get an array of admin emails. Then set up 2 filters with an OR to check if the signed in user is the creator of the row, or the signed in user is in the array of emails from the lookup to a sheet that lists the admins. [image]

Here’s some useful information about setting up admin rights prior to the new feature updates:

> [@Admin apps + editing rights](https://community.glideapps.com/t/admin-apps-editing-rights/4465):
>
> Although Glide doesn’t yet have true user profiles or levels of access - there are many different ways to create administrators and users in your apps. This video goes over the four most straightforward examples, but there are many more. I would love people to comment on this thread and explain any distinctions/other ways. @Jeff_Hager in particular! Thanks @Jeff_Hager & @George_B for your advice on this one.

I also have an Admin example in [https://concepts.glideapp.io/](https://concepts.glideapp.io/) that is admittedly a bit outdated, but may help give you some ideas.

---

<div class="post-metadata">

**Author:** ![GRobbins](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/grobbins/32/3924_2.png) [@GRobbins](https://community.glideapps.com/u/GRobbins)\
**Post date:** [March 8, 2020, 11:28am UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/11 "2020-03-08T11:28:32Z")

</div>

I am struggling a bit here. I set up a simple test app with roles as “admin” and “user” (or blank). Simple sheet with name-email-role fields. Admin can edit his record, but when another record is added … admin cannot edit it.

I have about decided to duplicate my main app, enabling one with add/edit rights and the other nothing for normal users. Password protect the admin app and go public with email on the restricted one.

What are pros and cons of this scenario? I assume I have to remember if there are any changes, they must be made to both apps, right?

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [March 8, 2020, 12:43pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/12 "2020-03-08T12:43:58Z")

</div>

Just write a post on this:

> [@fountain\_pen Conditions for Edit and Delete](https://community.glideapps.com/t/conditions-for-edit-and-delete/5225/23):
>
> Correct. You’d have to build a sheet that specifies admins. Name the columns Admin 1, Admin 2, etc. and populate those columns with email addresses. Glide will create an array column of these admins called Admin. Then you can create a filter that says if Admin is signed in user. You could get this to populate in every sheet of you create another column called IsAdmin and fill it with any string like “true” or “admin”. In your other sheets create a similar template column, then do a relatio…

---

<div class="post-metadata">

**Author:** ![George\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/george_b/32/534_2.png) [@George\_B](https://community.glideapps.com/u/George_B)\
**Post date:** [March 8, 2020, 12:57pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/13 "2020-03-08T12:57:57Z")

</div>

I suggest the best way to manage 2 apps pointing toward the same sheet is to create the Admin app first. Once you have it all set the way you want it for version 1.0, you duplicate it, making sure to keep it pointing to the same spreadsheet, and then remove the add and edit ability from this new users app for release 1. Now you would duplicate the Admin app, this time creating a copy of the spreadsheet. This will be your next release app. As you add more features and columns you need to document things, especially the changes to the structure of the spreadsheet. Once you have it all set and are ready for version 2.0, you need to carefully transfer the data that has been added to the spreadsheet in version 1.0 to the spreadsheet for version 2.0. Once the data is synced up, you duplicate version 2.0 Admin to create version 2.0 Users, remove the add and edit features, and rename the 4 apps to switch your users from V 1.0 to V 2.0.

[Edit]: with the new conditions for Edit and Delete this whole method may end up being obsolete. I’m still wrapping my head around these new capabilities.

---

<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:** [March 8, 2020, 2:38pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/14 "2020-03-08T14:38:09Z")

</div>

@Robert_Petitto I’m not sure if that method will word, but here is my reply from the other thread. I’d have to reverify, but I’ve had issues doing a lookup column into an array column on the related sheet. Admins need to be in rows in the admin sheet instead of columns.

> [@fountain\_pen Conditions for Edit and Delete](https://community.glideapps.com/t/conditions-for-edit-and-delete/5225/24):
>
> @kyleheney What I’m doing in my example is what you describe in your Edit2. Have an “admin” value in the sheet, create a multiple relation to an admins sheet that has the same “admins” value, then create a lookup that pulls all the admin emails. You have to make sure the admin records are in rows instead of columns. You would only have one email column in the admins sheet. In my screenshot, Email 1 is just a single email column of the row owner. Lkup-Admins is a lookup array of multiple val…

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [March 8, 2020, 3:06pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/15 "2020-03-08T15:06:57Z")

</div>

Hm…I’ll have to test. That’s why you’re an expert!

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [March 8, 2020, 3:22pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/16 "2020-03-08T15:22:59Z")

</div>

I stand corrected. Can’t do a lookup to an array column… 😒

 ![Screen Shot 2020-03-08 at 11.21.53 AM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/7/795bcc26520c979b5594b9962c984093e2e296f1.png)

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [March 8, 2020, 3:28pm UTC](https://community.glideapps.com/t/league-app-entering-scores-admin-rights/5219/17 "2020-03-08T15:28:42Z")

</div>

@Jeff_Hager is correct.

1. Each admin on its own row. Create “admin” template for these emails:  
 ![Screen Shot 2020-03-08 at 11.27.03 AM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/d/d28645013a78252b66b2677d1853b826c56237cc.png)
2. Create same template column on add/edit sheet. Match multiple relation between admin sheet and add/edit sheet. Do a lookup of this relation.  
 ![Screen Shot 2020-03-08 at 11.27.29 AM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/3/321f53a3c0de6c01a5b528f3f4053b3a0ce09edd.png)
