How to make only one user have access to Activity?

Asked

Viewed 41 times

0

I need some help from you because I’m having a hard time getting only one user to access a particular Activity.

Ex: I am developing an App where the settings screen only I will have access with my user, no other. I want to set this in the code only my userid with screen access.

private void openRestrictedSettings() {
    if(userId.equals("id")){
        Intent intentRestrictedSettings = new Intent(TelaPrincipalActivity.this, ActivityRestrictedSettings.class);
        startActivity(intentRestrictedSettings);
    }else {
        Toast.makeText(this, "Apenas usuários autorizados podem acessar as configurações", Toast.LENGTH_SHORT).show();
    }
}

inserir a descrição da imagem aqui

"userPermissions" exists only in my user, no other will have it.

How can I make an Activity open only those who own the userPermissions?

1 answer

1


Some things you can try:

Java constants.

public final class Constantes {
    // TODO: Revisar o ID 
    public static final String UID_ADMIN = "dGVzdGVAdGVzdGUuY29t";

    private Constantes() {
        // Sem instâncias
    }
}

Function to open the screen

private void openRestrictedSettings() {
    if (allowRestrictedSettings()) {
        Intent intentRestrictedSettings = new Intent(TelaPrincipalActivity.this, ActivityRestrictedSettings.class);
        startActivity(intentRestrictedSettings);
    }
}

private boolean allowRestrictedSettings() {
    /*
        Supondo que há um sistema de login com firebase
        e que você já tem uma classe UserEmail com o campo "id"
        e um objeto dessa classe disponível para verificação
     */
    FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
    if (currentUser == null) {
        Toast.makeText(this, "Por favor, faça login com sua conta", Toast.LENGTH_SHORT).show();
        return false;
    }

    String userId = userEmail.getUid();
    String userPermissions = userEmail.getuserPermissions();

    if (!userId.equals(Constantes.UID_ADMIN)) {
        Toast.makeText(this, "Apenas usuários autorizados podem acessar as configurações", Toast.LENGTH_SHORT).show();
        return false;
    }

    if (TextUtils.isEmpty(userPermissions) || !userPermissions.equals("admin")) {
        Toast.makeText(this, "Apenas usuários autorizados podem acessar as configurações", Toast.LENGTH_SHORT).show();
        return false;
    }

    // Ou direto pelo firebase auth
    if (!currentUser.getUid().equals(Constantes.UID_ADMIN)) {
        Toast.makeText(this, "Apenas usuários autorizados podem acessar as configurações", Toast.LENGTH_SHORT).show();
        return false;
    }
    
    return true;
}
  • Thank you so much!! :)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.