forked from CIT/Vmeda.Online
		
	MOBILE-3645 login: Fix consecutive logins if logout+SSO
This commit is contained in:
		
							parent
							
								
									0a5ca792b9
								
							
						
					
					
						commit
						45a23eff88
					
				@ -211,11 +211,11 @@ export type SiteDBEntry = {
 | 
			
		||||
    id: string;
 | 
			
		||||
    siteUrl: string;
 | 
			
		||||
    token: string;
 | 
			
		||||
    info: string;
 | 
			
		||||
    info?: string | null;
 | 
			
		||||
    privateToken: string;
 | 
			
		||||
    config: string;
 | 
			
		||||
    config?: string | null;
 | 
			
		||||
    loggedOut: number;
 | 
			
		||||
    oauthId: number;
 | 
			
		||||
    oauthId?: number | null;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export type CurrentSiteDBEntry = {
 | 
			
		||||
 | 
			
		||||
@ -688,7 +688,7 @@ export class CoreSitesProvider {
 | 
			
		||||
        oauthId?: number,
 | 
			
		||||
    ): Promise<void> {
 | 
			
		||||
        const db = await this.appDB;
 | 
			
		||||
        const entry = {
 | 
			
		||||
        const entry: SiteDBEntry = {
 | 
			
		||||
            id,
 | 
			
		||||
            siteUrl,
 | 
			
		||||
            token,
 | 
			
		||||
@ -1004,7 +1004,7 @@ export class CoreSitesProvider {
 | 
			
		||||
        const config = entry.config ? <CoreSiteConfig> CoreTextUtils.parseJSON(entry.config) : undefined;
 | 
			
		||||
 | 
			
		||||
        const site = new CoreSite(entry.id, entry.siteUrl, entry.token, info, entry.privateToken, config, entry.loggedOut == 1);
 | 
			
		||||
        site.setOAuthId(entry.oauthId);
 | 
			
		||||
        site.setOAuthId(entry.oauthId || undefined);
 | 
			
		||||
 | 
			
		||||
        return this.migrateSiteSchemas(site).then(() => {
 | 
			
		||||
            // Set site after migrating schemas, or a call to getSite could get the site while tables are being created.
 | 
			
		||||
@ -1221,11 +1221,16 @@ export class CoreSitesProvider {
 | 
			
		||||
    async setSiteLoggedOut(siteId: string, loggedOut: boolean): Promise<void> {
 | 
			
		||||
        const db = await this.appDB;
 | 
			
		||||
        const site = await this.getSite(siteId);
 | 
			
		||||
        const newValues = {
 | 
			
		||||
            token: '', // Erase the token for security.
 | 
			
		||||
        const newValues: Partial<SiteDBEntry> = {
 | 
			
		||||
            loggedOut: loggedOut ? 1 : 0,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        if (loggedOut) {
 | 
			
		||||
            // Erase the token for security.
 | 
			
		||||
            newValues.token = '';
 | 
			
		||||
            site.token = '';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        site.setLoggedOut(loggedOut);
 | 
			
		||||
 | 
			
		||||
        await db.updateRecords(SITES_TABLE_NAME, newValues, { id: siteId });
 | 
			
		||||
@ -1266,7 +1271,7 @@ export class CoreSitesProvider {
 | 
			
		||||
    async updateSiteTokenBySiteId(siteId: string, token: string, privateToken: string = ''): Promise<void> {
 | 
			
		||||
        const db = await this.appDB;
 | 
			
		||||
        const site = await this.getSite(siteId);
 | 
			
		||||
        const newValues = {
 | 
			
		||||
        const newValues: Partial<SiteDBEntry> = {
 | 
			
		||||
            token,
 | 
			
		||||
            privateToken,
 | 
			
		||||
            loggedOut: 0,
 | 
			
		||||
@ -1307,7 +1312,7 @@ export class CoreSitesProvider {
 | 
			
		||||
                // Error getting config, keep the current one.
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            const newValues: Record<string, string | number> = {
 | 
			
		||||
            const newValues: Partial<SiteDBEntry> = {
 | 
			
		||||
                info: JSON.stringify(info),
 | 
			
		||||
                loggedOut: site.isLoggedOut() ? 1 : 0,
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user