Fix version API auth check #399

Merged
mmarif merged 3 commits from 6543/GitNex:389_alternate_version-api-auth into master 2020-04-13 08:01:59 +00:00
3 changed files with 33 additions and 8 deletions

View File

@ -377,7 +377,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
}
tinyDb.putString("instanceUrlRaw", instanceHost);
//tinyDb.putString("loginUid", loginUid);
tinyDb.putString("instanceUrl", instanceUrl);
tinyDb.putString("instanceUrlWithProtocol", instanceUrlWithProtocol);
@ -414,10 +413,28 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
private void versionCheck(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP, final String loginToken_, final int loginType) {
Call<GiteaVersion> callVersion = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getGiteaVersion();
Call<GiteaVersion> callVersion;
if (!loginToken_.isEmpty()) {
callVersion = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getGiteaVersionWithToken(loginToken_);
}
else {
final String credential = Credentials.basic(loginUid, loginPass, StandardCharsets.UTF_8);
if (loginOTP != 0) {
callVersion = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getGiteaVersionWithOTP(credential,loginOTP);
}
else {
callVersion = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getGiteaVersionWithBasic(credential);
}
}
callVersion.enqueue(new Callback<GiteaVersion>() {
@ -520,7 +537,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
if (response.isSuccessful()) {
if (response.code() == 200) {
tinyDb.putBoolean("loggedInMode", true);
assert userDetails != null;
tinyDb.putString(userDetails.getLogin() + "-token", loginToken_);

View File

@ -404,10 +404,12 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig
final TinyDB tinyDb = new TinyDB(getApplicationContext());
final String token = "token " + tinyDb.getString(tinyDb.getString("loginUid") + "-token");
Call<GiteaVersion> callVersion = RetrofitClient
.getInstance(instanceUrl, getApplicationContext())
.getApiInterface()
.getGiteaVersion();
.getGiteaVersionWithToken(token);
callVersion.enqueue(new Callback<GiteaVersion>() {

View File

@ -52,7 +52,13 @@ import retrofit2.http.Query;
public interface ApiInterface {
@GET("version") // gitea version API
Call<GiteaVersion> getGiteaVersion();
Call<GiteaVersion> getGiteaVersionWithBasic(@Header("Authorization") String authorization);
@GET("version") // gitea version API
Call<GiteaVersion> getGiteaVersionWithOTP(@Header("Authorization") String authorization, @Header("X-Gitea-OTP") int loginOTP);
@GET("version") // gitea version API
Call<GiteaVersion> getGiteaVersionWithToken(@Header("Authorization") String token);
@GET("user") // username, full name, email
Call<UserInfo> getUserInfo(@Header("Authorization") String token);