I want to manage users so I can allow any user to login to one of my apps and not the other one. How can I do that in Commcare. Like I want user01 to login to my app01 but not be able to log in to app02.
you cannot prevent them from installing the app if they have the codes. but you can prevent forms from showing up using a display condition.
it's best to create a case sharing group or a location structure where you can put your disallowed users and check for that in the form and caselist display conditions
something like this
if(instance('locations')/locations/location[@id = instance('commcaresession')/session/user/data/commcare_location_id]/@type = 'blocked_users',false(),true())
this returns false for when the user is in the group that is of the type "blocked_users" that you would need to
create the level called "blocked users"
create a location of that type and give it any name
put your users that you do not want to use that app into it
put that code in the display conditions of caselists
test
If you want your user to access only certain apps, then you need to ensure you give the codes of only those apps you have allowed them to access. This way they can only install those apps you have allowed and there is no other way for them to access the ones that you do not want them to. If they have the code, then they can install it and there is no other way to stop them.
unless shared by someone else Hussain!
In my experience, users will always do every single thing that is within the realm of possibilities.
so, while you share your code with staff A, and not B. staff A CAN for some reason share their code with Staff B to install the app. for example their phone broke or something. or, just curiosity.
you would be surprised what scenarios pop up when you the technology in actual users hands