mirror of
				https://codeberg.org/tom79/Fedilab.git
				synced 2025-10-20 11:20:16 +03:00 
			
		
		
		
	Fix authentication issue
This commit is contained in:
		
							parent
							
								
									5ddc756440
								
							
						
					
					
						commit
						4c375cfe4a
					
				
					 1 changed files with 27 additions and 29 deletions
				
			
		| 
						 | 
					@ -52,6 +52,7 @@ public class LoginActivity extends BaseActivity {
 | 
				
			||||||
    private boolean requestedAdmin;
 | 
					    private boolean requestedAdmin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void manageItent(Intent intent) {
 | 
					    private void manageItent(Intent intent) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (intent != null && intent.getData() != null && intent.getData().toString().contains(REDIRECT_CONTENT_WEB + "?code=")) {
 | 
					        if (intent != null && intent.getData() != null && intent.getData().toString().contains(REDIRECT_CONTENT_WEB + "?code=")) {
 | 
				
			||||||
            String url = intent.getData().toString();
 | 
					            String url = intent.getData().toString();
 | 
				
			||||||
            Matcher matcher = Helper.codePattern.matcher(url);
 | 
					            Matcher matcher = Helper.codePattern.matcher(url);
 | 
				
			||||||
| 
						 | 
					@ -61,38 +62,35 @@ public class LoginActivity extends BaseActivity {
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            String code = matcher.group(1);
 | 
					            String code = matcher.group(1);
 | 
				
			||||||
            OauthVM oauthVM = new ViewModelProvider(LoginActivity.this).get(OauthVM.class);
 | 
					            OauthVM oauthVM = new ViewModelProvider(LoginActivity.this).get(OauthVM.class);
 | 
				
			||||||
 | 
					 | 
				
			||||||
            //We are dealing with a Mastodon API
 | 
					            //We are dealing with a Mastodon API
 | 
				
			||||||
            if (apiLogin == Account.API.MASTODON) {
 | 
					            //API call to get the user token
 | 
				
			||||||
                //API call to get the user token
 | 
					            String scope = requestedAdmin ? Helper.OAUTH_SCOPES_ADMIN : Helper.OAUTH_SCOPES;
 | 
				
			||||||
                String scope = requestedAdmin ? Helper.OAUTH_SCOPES_ADMIN : Helper.OAUTH_SCOPES;
 | 
					            oauthVM.createToken(currentInstanceLogin, "authorization_code", client_idLogin, client_secretLogin, Helper.REDIRECT_CONTENT_WEB, scope, code)
 | 
				
			||||||
                oauthVM.createToken(currentInstanceLogin, "authorization_code", client_idLogin, client_secretLogin, Helper.REDIRECT_CONTENT_WEB, scope, code)
 | 
					                    .observe(LoginActivity.this, tokenObj -> {
 | 
				
			||||||
                        .observe(LoginActivity.this, tokenObj -> {
 | 
					                        Account account = new Account();
 | 
				
			||||||
                            Account account = new Account();
 | 
					                        account.client_id = client_idLogin;
 | 
				
			||||||
                            account.client_id = client_idLogin;
 | 
					                        account.client_secret = client_secretLogin;
 | 
				
			||||||
                            account.client_secret = client_secretLogin;
 | 
					                        account.token = tokenObj.token_type + " " + tokenObj.access_token;
 | 
				
			||||||
                            account.token = tokenObj.token_type + " " + tokenObj.access_token;
 | 
					                        account.api = apiLogin;
 | 
				
			||||||
                            account.api = apiLogin;
 | 
					                        account.software = softwareLogin;
 | 
				
			||||||
                            account.software = softwareLogin;
 | 
					                        account.instance = currentInstanceLogin;
 | 
				
			||||||
                            account.instance = currentInstanceLogin;
 | 
					                        //API call to retrieve account information for the new token
 | 
				
			||||||
                            //API call to retrieve account information for the new token
 | 
					                        AccountsVM accountsVM = new ViewModelProvider(LoginActivity.this).get(AccountsVM.class);
 | 
				
			||||||
                            AccountsVM accountsVM = new ViewModelProvider(LoginActivity.this).get(AccountsVM.class);
 | 
					                        accountsVM.getConnectedAccount(currentInstanceLogin, account.token).observe(LoginActivity.this, mastodonAccount -> {
 | 
				
			||||||
                            accountsVM.getConnectedAccount(currentInstanceLogin, account.token).observe(LoginActivity.this, mastodonAccount -> {
 | 
					                            account.mastodon_account = mastodonAccount;
 | 
				
			||||||
                                account.mastodon_account = mastodonAccount;
 | 
					                            account.user_id = mastodonAccount.id;
 | 
				
			||||||
                                account.user_id = mastodonAccount.id;
 | 
					                            //We check if user have really moderator rights
 | 
				
			||||||
                                //We check if user have really moderator rights
 | 
					                            if (requestedAdmin) {
 | 
				
			||||||
                                if (requestedAdmin) {
 | 
					                                AdminVM adminVM = new ViewModelProvider(LoginActivity.this).get(AdminVM.class);
 | 
				
			||||||
                                    AdminVM adminVM = new ViewModelProvider(LoginActivity.this).get(AdminVM.class);
 | 
					                                adminVM.getAccount(account.instance, account.token, account.user_id).observe(LoginActivity.this, adminAccount -> {
 | 
				
			||||||
                                    adminVM.getAccount(account.instance, account.token, account.user_id).observe(LoginActivity.this, adminAccount -> {
 | 
					                                    account.admin = adminAccount != null;
 | 
				
			||||||
                                        account.admin = adminAccount != null;
 | 
					 | 
				
			||||||
                                        WebviewConnectActivity.proceedLogin(LoginActivity.this, account);
 | 
					 | 
				
			||||||
                                    });
 | 
					 | 
				
			||||||
                                } else {
 | 
					 | 
				
			||||||
                                    WebviewConnectActivity.proceedLogin(LoginActivity.this, account);
 | 
					                                    WebviewConnectActivity.proceedLogin(LoginActivity.this, account);
 | 
				
			||||||
                                }
 | 
					                                });
 | 
				
			||||||
                            });
 | 
					                            } else {
 | 
				
			||||||
 | 
					                                WebviewConnectActivity.proceedLogin(LoginActivity.this, account);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
                        });
 | 
					                        });
 | 
				
			||||||
            }
 | 
					                    });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue