Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45cda330 authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

Merge branch '1547-Sanitize_userId_on_image_loading' into 'main'

1547-Sanitize_userId_on_image_loading

See merge request !54
parents cc1bbc41 aa5b0a28
Loading
Loading
Loading
Loading
Loading
+2 −18
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ import androidx.annotation.WorkerThread;
import com.nextcloud.android.sso.model.SingleSignOnAccount;

import it.niedermann.owncloud.notes.shared.model.Capabilities;
import it.niedermann.owncloud.notes.shared.util.SSOUtil;
import trikita.log.Log;

@WorkerThread
@@ -46,7 +47,7 @@ public class CapabilitiesClient {
    public static String getDisplayName(@NonNull Context context, @NonNull SingleSignOnAccount ssoAccount, @NonNull ApiProvider apiProvider) {
        final var ocsAPI = apiProvider.getOcsAPI(context, ssoAccount);
        try {
            final var userResponse = ocsAPI.getUser(sanitizeUserId(ssoAccount.userId)).execute();
            final var userResponse = ocsAPI.getUser(SSOUtil.sanitizeUserId(ssoAccount.userId)).execute();
            if (userResponse.isSuccessful()) {
                final var ocsResponse = userResponse.body();
                if (ocsResponse != null) {
@@ -62,21 +63,4 @@ public class CapabilitiesClient {
        }
        return null;
    }

    /**
     * Murena account's userId is set same as it's email address (passed by accountManager app).
     * For old accounts (@e.email) userId = email.
     * For new accounts (@murena.io) userId is first part of email (ex: for email abc@murena.io, userId is abc).
     * For api requests, we needed to pass the actual userId. This method remove the unwanted part (@murena.io) from the userId
     */
    @NonNull
    private static String sanitizeUserId(@NonNull String userId) {
        final String murenaMailEndPart = "@murena.io";

        if (!userId.endsWith(murenaMailEndPart)) {
            return userId;
        }

        return userId.split(murenaMailEndPart)[0];
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -107,6 +107,6 @@ public class DisplayUtils {

    @NonNull
    public static String getAvatarUrl(@NonNull Account account) {
        return account.getUrl() + "/index.php/avatar/" + Uri.encode(account.getUserName()) + "/64";
        return account.getUrl() + "/index.php/avatar/" + Uri.encode(SSOUtil.sanitizeUserId(account.getUserName())) + "/64";
    }
}
+17 −0
Original line number Diff line number Diff line
@@ -49,4 +49,21 @@ public class SSOUtil {
            return false;
        }
    }

    /**
     * Murena account's userId is set same as it's email address (passed by accountManager app).
     * For old accounts (@e.email) userId = email.
     * For new accounts (@murena.io) userId is first part of email (ex: for email abc@murena.io, userId is abc).
     * For api requests, we needed to pass the actual userId. This method remove the unwanted part (@murena.io) from the userId
     */
    @NonNull
    public static String sanitizeUserId(@NonNull String userId) {
        final String murenaMailEndPart = "@murena.io";

        if (!userId.endsWith(murenaMailEndPart)) {
            return userId;
        }

        return userId.split(murenaMailEndPart)[0];
    }
}