Check rights
This commit is contained in:
parent
bbfa278d6b
commit
57327a8ad0
|
@ -387,6 +387,7 @@ public class LoginActivity extends AppCompatActivity {
|
|||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, token.getAccess_token());
|
||||
editor.putString(Helper.PREF_SOFTWARE, software != null && software.toUpperCase().trim().compareTo("PEERTUBE") != 0 ? software : null);
|
||||
editor.putString(Helper.PREF_INSTANCE, host);
|
||||
editor.commit();
|
||||
//Update the account with the token;
|
||||
|
|
|
@ -939,7 +939,8 @@ public class MainActivity extends AppCompatActivity implements ChromeCastsListen
|
|||
public enum TypeOfConnection {
|
||||
UNKNOWN,
|
||||
NORMAL,
|
||||
SURFING
|
||||
SURFING,
|
||||
REMOTE_ACCOUNT
|
||||
}
|
||||
|
||||
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
|
||||
|
|
|
@ -137,9 +137,10 @@ public class WebviewConnectActivity extends AppCompatActivity {
|
|||
if (token != null) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, token.getAccess_token());
|
||||
editor.putString(Helper.PREF_SOFTWARE, null);
|
||||
editor.putString(Helper.PREF_INSTANCE, instance);
|
||||
editor.apply();
|
||||
updateCredential(WebviewConnectActivity.this, token.getAccess_token(), clientId, clientSecret, token.getRefresh_token(), new URL(url).getHost());
|
||||
updateCredential(WebviewConnectActivity.this, token.getAccess_token(), clientId, clientSecret, token.getRefresh_token(), new URL(url).getHost(), null);
|
||||
finish();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
|
@ -241,6 +241,7 @@ public class RetrofitPeertubeAPI {
|
|||
SharedPreferences sharedpreferences = _context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, tokenReply.getAccess_token());
|
||||
editor.putString(Helper.PREF_SOFTWARE, null);
|
||||
editor.apply();
|
||||
SQLiteDatabase db = Sqlite.getInstance(_context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
new AccountDAO(_context, db).updateAccountToken(tokenReply);
|
||||
|
|
|
@ -77,7 +77,7 @@ public class AccountData {
|
|||
private String client_id;
|
||||
private String client_secret;
|
||||
private String refresh_token;
|
||||
|
||||
private String software;
|
||||
|
||||
public Account() {
|
||||
}
|
||||
|
@ -241,6 +241,14 @@ public class AccountData {
|
|||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getSoftware() {
|
||||
return software;
|
||||
}
|
||||
|
||||
public void setSoftware(String software) {
|
||||
this.software = software;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
|
|
|
@ -114,6 +114,7 @@ public class Helper {
|
|||
public static final String OAUTH_SCOPES_MASTODON = "read write follow";
|
||||
public static final String REDIRECT_CONTENT = "urn:ietf:wg:oauth:2.0:oob";
|
||||
public static final String PREF_KEY_OAUTH_TOKEN = "oauth_token";
|
||||
public static final String PREF_SOFTWARE = "pref_software";
|
||||
public static final Pattern redirectPattern = Pattern.compile("externalAuthToken=(\\w+)&username=([\\w.-]+)");
|
||||
public static final String SET_VIDEO_CACHE = "set_video_cache";
|
||||
public static final String RECEIVE_CAST_SETTINGS = "receive_cast_settings";
|
||||
|
@ -484,9 +485,36 @@ public class Helper {
|
|||
* @return boolean
|
||||
*/
|
||||
public static boolean isLoggedIn(Context context) {
|
||||
return isLoggedInType(context) == MainActivity.TypeOfConnection.NORMAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Some actions like following writing comment can be performed with remote accounts
|
||||
*
|
||||
* @param context Context
|
||||
* @return boolean
|
||||
*/
|
||||
public static boolean canMakeAction(Context context) {
|
||||
return (isLoggedInType(context) == MainActivity.TypeOfConnection.NORMAL || isLoggedInType(context) == MainActivity.TypeOfConnection.REMOTE_ACCOUNT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns boolean depending if the user is authenticated
|
||||
*
|
||||
* @param context Context
|
||||
* @return MainActivity.TypeOfConnection
|
||||
*/
|
||||
private static MainActivity.TypeOfConnection isLoggedInType(Context context) {
|
||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
String prefKeyOauthTokenT = sharedpreferences.getString(PREF_KEY_OAUTH_TOKEN, null);
|
||||
return (prefKeyOauthTokenT != null);
|
||||
String prefSoftware = sharedpreferences.getString(PREF_SOFTWARE, null);
|
||||
if (prefKeyOauthTokenT != null && prefSoftware == null) {
|
||||
return MainActivity.TypeOfConnection.NORMAL;
|
||||
} else if (prefKeyOauthTokenT != null) {
|
||||
return MainActivity.TypeOfConnection.REMOTE_ACCOUNT;
|
||||
} else {
|
||||
return MainActivity.TypeOfConnection.UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -55,6 +55,7 @@ public class SwitchAccountHelper {
|
|||
SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, account.getToken());
|
||||
editor.putString(Helper.PREF_SOFTWARE, account.getSoftware() != null && account.getSoftware().trim().toUpperCase().compareTo("PEERTUBE") != 0 ? account.getSoftware() : null);
|
||||
editor.putString(Helper.PREF_INSTANCE, account.getHost());
|
||||
editor.putString(Helper.PREF_KEY_ID, account.getId());
|
||||
editor.putString(Helper.PREF_KEY_NAME, account.getUsername());
|
||||
|
|
|
@ -317,6 +317,7 @@ public class AccountDAO {
|
|||
account.setCreatedAt(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_CREATED_AT))));
|
||||
account.setHost(c.getString(c.getColumnIndex(Sqlite.COL_INSTANCE)));
|
||||
account.setToken(c.getString(c.getColumnIndex(Sqlite.COL_OAUTHTOKEN)));
|
||||
account.setSoftware(c.getString(c.getColumnIndex(Sqlite.COL_SOFTWARE)));
|
||||
account.setClient_id(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_ID)));
|
||||
account.setClient_secret(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_SECRET)));
|
||||
account.setRefresh_token(c.getString(c.getColumnIndex(Sqlite.COL_REFRESH_TOKEN)));
|
||||
|
@ -357,6 +358,7 @@ public class AccountDAO {
|
|||
account.setCreatedAt(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_CREATED_AT))));
|
||||
account.setHost(c.getString(c.getColumnIndex(Sqlite.COL_INSTANCE)));
|
||||
account.setToken(c.getString(c.getColumnIndex(Sqlite.COL_OAUTHTOKEN)));
|
||||
account.setSoftware(c.getString(c.getColumnIndex(Sqlite.COL_SOFTWARE)));
|
||||
account.setClient_id(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_ID)));
|
||||
account.setClient_secret(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_SECRET)));
|
||||
account.setRefresh_token(c.getString(c.getColumnIndex(Sqlite.COL_REFRESH_TOKEN)));
|
||||
|
|
Loading…
Reference in New Issue