mirror of
https://github.com/bitwarden/directory-connector
synced 2025-12-21 18:53:18 +00:00
okta filters
This commit is contained in:
@@ -122,7 +122,6 @@ export class GSuiteDirectoryService implements DirectoryService {
|
|||||||
entry.email = user.primaryEmail;
|
entry.email = user.primaryEmail;
|
||||||
entry.disabled = user.suspended || false;
|
entry.disabled = user.suspended || false;
|
||||||
entry.deleted = deleted;
|
entry.deleted = deleted;
|
||||||
// entry.creationDate = user.creationTime; // TODO: string to date conversion
|
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,13 +56,17 @@ export class OktaDirectoryService implements DirectoryService {
|
|||||||
|
|
||||||
private async getUsers(force: boolean): Promise<UserEntry[]> {
|
private async getUsers(force: boolean): Promise<UserEntry[]> {
|
||||||
const entries: UserEntry[] = [];
|
const entries: UserEntry[] = [];
|
||||||
|
const lastSync = await this.configurationService.getLastUserSyncDate();
|
||||||
|
const filter = this.buildFilter(this.syncConfig.userFilter, force, lastSync);
|
||||||
|
|
||||||
this.logService.info('Querying users.');
|
this.logService.info('Querying users.');
|
||||||
await this.client.listUsers().each((user: any) => {
|
await this.client.listUsers({ filter: filter }).each((user: any) => {
|
||||||
const entry = this.buildUser(user);
|
const entry = this.buildUser(user);
|
||||||
if (entry != null) {
|
if (entry != null) {
|
||||||
entries.push(entry);
|
entries.push(entry);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return entries;
|
return entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,8 +82,11 @@ export class OktaDirectoryService implements DirectoryService {
|
|||||||
|
|
||||||
private async getGroups(force: boolean): Promise<GroupEntry[]> {
|
private async getGroups(force: boolean): Promise<GroupEntry[]> {
|
||||||
const entries: GroupEntry[] = [];
|
const entries: GroupEntry[] = [];
|
||||||
|
const lastSync = await this.configurationService.getLastGroupSyncDate();
|
||||||
|
const filter = this.buildFilter(this.syncConfig.groupFilter, force, lastSync);
|
||||||
|
|
||||||
this.logService.info('Querying groups.');
|
this.logService.info('Querying groups.');
|
||||||
await this.client.listGroups().each((group: any) => {
|
await this.client.listGroups({ filter: filter }).each((group: any) => {
|
||||||
const entry = this.buildGroup(group);
|
const entry = this.buildGroup(group);
|
||||||
if (entry != null) {
|
if (entry != null) {
|
||||||
entries.push(entry);
|
entries.push(entry);
|
||||||
@@ -95,4 +102,18 @@ export class OktaDirectoryService implements DirectoryService {
|
|||||||
entry.name = group.profile.name;
|
entry.name = group.profile.name;
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private buildFilter(baseFilter: string, force: boolean, lastSync: Date) {
|
||||||
|
baseFilter = baseFilter == null || baseFilter.trim() === '' ? null : baseFilter;
|
||||||
|
if (force || lastSync == null) {
|
||||||
|
return baseFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
const updatedFilter = 'lastUpdated gt ' + lastSync.toISOString();
|
||||||
|
if (baseFilter == null) {
|
||||||
|
return updatedFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
return '(' + baseFilter + ') and ' + updatedFilter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user