Background
Having the capability to Lock a user through the UI is a great concept that can be quite useful for customer support (like giving a "test period" access).
What is not useful is that you have to do it pretty much manually. To avoid that we have a script that can set an Expiry Instant for a certain User.
The problem now is that on the UI we cannot see if the user is not active since it might be expired. We have to go in the user and check the source. Worst of all you need to call the API to "unexpired" it, i.e. there is no UI support.
My Current Solution
I am building a UI internally to allow our customer support to do those instead of having to contact us from the technical team, but I would love if someone could explain to me the difference on these concepts and maybe explain to me why the decision of implement these separately was made.
One idea
I could imagine having something like a "time-based lock". We could set it to now
and it would lock it right away. Otherwise on a certain date. For this the expiry would work exactly as now and the lock would not be necessary. Just the UI would be updated based on that info.
Appreciation
This is curiosity and trying to understand the product better, I can still use everything and think FusionAuth is a very complete (and awesome) tool. So please don't take this as a criticism.