Fix MM46418 (#6796)
This commit is contained in:
parent
724d72d98a
commit
63e6b0f626
1 changed files with 4 additions and 13 deletions
|
|
@ -2,14 +2,12 @@
|
|||
// See LICENSE.txt for license information.
|
||||
|
||||
import {Database, Q} from '@nozbe/watermelondb';
|
||||
import {combineLatest, Observable, of as of$} from 'rxjs';
|
||||
import {combineLatest, of as of$} from 'rxjs';
|
||||
import {distinctUntilChanged, switchMap} from 'rxjs/operators';
|
||||
|
||||
import {Preferences} from '@constants';
|
||||
import {MM_TABLES} from '@constants/database';
|
||||
import {getTeammateNameDisplaySetting} from '@helpers/api/preference';
|
||||
import {observeMyChannel} from '@queries/servers/channel';
|
||||
import {isChannelAdmin} from '@utils/user';
|
||||
|
||||
import {queryPreferencesByCategoryAndName} from './preference';
|
||||
import {observeCurrentUserId, observeLicense, getCurrentUserId, getConfig, getLicense, observeConfigValue} from './system';
|
||||
|
|
@ -106,24 +104,17 @@ export const observeUserIsTeamAdmin = (database: Database, userId: string, teamI
|
|||
const id = `${teamId}-${userId}`;
|
||||
return database.get<TeamMembershipModel>(TEAM_MEMBERSHIP).query(
|
||||
Q.where('id', Q.eq(id)),
|
||||
).observe().pipe(
|
||||
).observeWithColumns(['scheme_admin']).pipe(
|
||||
switchMap((tm) => of$(tm.length ? tm[0].schemeAdmin : false)),
|
||||
);
|
||||
};
|
||||
|
||||
export const observeUserIsChannelAdmin = (database: Database, userId: string, channelId: string) => {
|
||||
const id = `${channelId}-${userId}`;
|
||||
const myChannelRoles = observeMyChannel(database, channelId).pipe(
|
||||
switchMap((mc) => of$(mc?.roles || '')),
|
||||
distinctUntilChanged(),
|
||||
);
|
||||
const channelSchemeAdmin = database.get<ChannelMembershipModel>(CHANNEL_MEMBERSHIP).query(
|
||||
return database.get<ChannelMembershipModel>(CHANNEL_MEMBERSHIP).query(
|
||||
Q.where('id', Q.eq(id)),
|
||||
).observe().pipe(
|
||||
).observeWithColumns(['scheme_admin']).pipe(
|
||||
switchMap((cm) => of$(cm.length ? cm[0].schemeAdmin : false)),
|
||||
distinctUntilChanged(),
|
||||
);
|
||||
return combineLatest([myChannelRoles, channelSchemeAdmin]).pipe(
|
||||
switchMap(([mcr, csa]) => of$(isChannelAdmin(mcr) || csa)),
|
||||
) as Observable<boolean>;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue