Restricted Sign in with email address

I want to make a restricted sign-in system with email address in which only those who have already submitted their email address to me can sign in. I tried using the “Sometimes” setting but couldn’t find how to do it. Does anyone know how to make this kind of system?

You can do this by making the Signup button a list of “Submitted Emails” that only shows one item. Filter the list so that it only shows the emails that match whatever the user puts in the input. If it’s a valid email, the button will appear, allowing them to continue. You can also add a regular button right below the list so that a button always appears but nothing happens if you want.

You could also just add a regular button with visibility that says “If the count of submitted emails where the email equals what the user inputs is greater than 0, show the button and let them click it”

2 Likes

@pfordmedia Thank you so much for your reply. But still I don’t understand why it doesn’t work. I already make a property “Submitted Emails” where I register the submitted email addresses. And I also make the Signup button link to the Home screen only when the count of submitted emails [Filter: the email equals logged in user’s email is greater than 0. Could you please tell me what the problem is ?

Instead of using the Logged in User>Email dynamic text, you’ll want to use the input’s value. Because the user has not technically signed up yet so no Logged in User exists.

1 Like

@pfordmedia Thank you for your reply. Could you please tell me how to use “Email dynamic text” ? It seems that I can’t use any form inputs.


Yes you will actually need to build the form from individual components in order to access the form input. Could you send a screenshot of the screen this is on?

Super useful thread, I have implemented this as recommended (had to split the signup form).

Not entirely sure I understand why having the signup button as a “list of 1” works :slight_smile: I had tried to do it by setting visibility on a count of my external email addresses being > 0. But that did not work.

Supplemental question. How do I display some details (like Full Name) from the external collection? Should I have a “list of 1” on the detail screen for this?

Given I have found my matching email once, and I will know the id, can I access this directly somehow ?

Obviously I can store it on the user when they sign up, but that feels like bad practice.

Thanks.

Hi @NigelG,

Not entirely sure I understand why having the signup button as a “list of 1” works :slight_smile:

It’s not that complicated :slight_smile:

  1. You have a collection of emails. You create a list of this collection. Result: you see all emails in a list.
  2. You put a signup button to this list. Result: for all emails you have sign up button.
  3. You filter this list based on the input, so that email from the collection exactly matches the value in the input. Result: nothing, if input value doesn’t match any of the emails. OR 1 list entry with a “Signup” button, if input value matches the email.

Button Visibility with Count implements similar logic. You take all Email collection. Then you Count the number of Email addresses, which are equal to input value. If it is greater than 0 - the button is shown.

As for your supplemental question - why don’t you want to store user Full Name in Adalo? :slight_smile: If you have 2 collections for users, it adds complexity in my opinion.

Best regards, Victor.

Thanks again. You are a star.

I think my confusion was why using a Visibility statement on the button doesn’t work. But his does.

In terms of storing the data, I want it to update when the base data is changed. But I can do that via a Zap I guess.

1 Like

Well, this doesn’t actually work.

The “Current” record on the external supplier are not being updated when you signup. Is this a bug ?

In fact I think this goes deeper, and this function (create fields on the user on signup) just doesn’t work at all.

If I set a hard coded value…

image

It doesn’t get updated to the User. Is this something I am doing, or is this just fatally flawed?

Sorry, not being frustrated with you @Victor - just encountering a lot of gotchas right now.

Hi @NigelG,

I would avoid adding anything complex to SignUp function - in my experience sometimes this doesn’t work correctly.
You may try to modify logged-in user on a next screen: for example, create an “interim” blank screen with all actions, set transition to “none” and do what you need on-screen-enter there. Last action will be to go to actual Home screen.

Best,
Victor

Thanks. Yes, that was my second port of call after trying to do a Custom action on the signup and using the outputs in the next step.

image

But you can’t access anything in there :frowning:

Nothing to see here.

Hi @NigelG,

I’m sorry, but it seems that you are missing something. There is no “default” destination after the sign-up or login. You create a link whenever you want. Here is the screenshot.

This one is linking to “Home”. And on this video https://youtu.be/_FjSolSWukg I’m using the “interim” screen to send users either Admin or User screens.

If you’re talking about when a “logged-in” user gets upon next app open, then it is a “Home” page. But you can set any screen to be a “Home” screen. For example, in a recent project I’ve made a user rights check screen, and assigned it as a “Home” screen.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.