Fix type errors

This commit is contained in:
Martin Kleinschrodt 2022-05-13 15:28:18 +02:00
parent f3bc5bc430
commit 2d4ca3b29d
5 changed files with 17 additions and 14 deletions

View File

@ -254,7 +254,10 @@ export class BasicProvisionerConfig extends Config {
}
export class BasicProvisioner implements Provisioner {
constructor(public readonly config: BasicProvisionerConfig, public readonly storage: Storage) {}
constructor(
public readonly storage: Storage,
public readonly config: BasicProvisionerConfig = new BasicProvisionerConfig()
) {}
async getProvisioning({
email,

View File

@ -35,7 +35,7 @@ import { MixpanelLogger } from "./logging/mixpanel";
import { PostgresStorage } from "./storage/postgres";
import { ErrorCode } from "@padloc/core/src/error";
import { stripPropertiesRecursive } from "@padloc/core/src/util";
import { DirectoryProvisioner, DirectoryProvisionerConfig } from "./provisioning/directory";
import { DirectoryProvisioner } from "./provisioning/directory";
import { ScimServer, ScimServerConfig } from "./scim";
import { DirectoryProvider, DirectorySync } from "@padloc/core/src/directory";
@ -208,12 +208,12 @@ async function initProvisioner(config: PadlocConfig, storage: Storage, directory
if (!config.provisioning.basic) {
config.provisioning.basic = new BasicProvisionerConfig();
}
return new BasicProvisioner(config.provisioning.basic, storage);
return new BasicProvisioner(storage, config.provisioning.basic);
case "directory":
const directoryProvisioner = new DirectoryProvisioner(
config.provisioning.directory || new DirectoryProvisionerConfig(),
storage,
directoryProviders
directoryProviders,
config.provisioning.directory
);
return directoryProvisioner;
case "stripe":

View File

@ -71,7 +71,7 @@ export class ProvisioningEntry extends Provisioning {
export class ApiProvisioner extends BasicProvisioner {
constructor(public readonly config: ApiProvisionerConfig, public readonly storage: Storage) {
super(config, storage);
super(storage, config);
}
protected async _getProvisioningEntry({ email, accountId }: { email: string; accountId?: string | undefined }) {

View File

@ -5,18 +5,18 @@ import {
ProvisioningStatus,
} from "@padloc/core/src/provisioning";
import { Storage } from "@padloc/core/src/storage";
import { Config } from "@padloc/core/src/config";
import { DirectoryGroup, DirectoryProvider, DirectorySubscriber, DirectoryUser } from "@padloc/core/src/directory";
export class DirectoryProvisionerConfig extends Config {}
export class DirectoryProvisionerConfig extends BasicProvisionerConfig {}
export class DirectoryProvisioner extends BasicProvisioner implements DirectorySubscriber {
constructor(
public readonly directoryConfig: DirectoryProvisionerConfig,
public readonly storage: Storage,
public readonly providers: DirectoryProvider[] = []
public readonly providers: DirectoryProvider[] = [],
public readonly config: DirectoryProvisionerConfig = new DirectoryProvisionerConfig()
) {
super(
storage,
new BasicProvisionerConfig({
default: new DefaultAccountProvisioning({
status: ProvisioningStatus.Unprovisioned,
@ -24,8 +24,7 @@ export class DirectoryProvisioner extends BasicProvisioner implements DirectoryS
statusMessage:
"You currently don't have access to this service. Please contact the service administrator.",
}),
}),
storage
})
);
for (const provider of providers) {
provider.subscribe(this);

View File

@ -1,7 +1,7 @@
import Stripe from "stripe";
import { Storage } from "@padloc/core/src/storage";
import { readBody } from "../transport/http";
import { Config, ConfigParam } from "@padloc/core/src/config";
import { ConfigParam } from "@padloc/core/src/config";
import {
AccountFeatures,
AccountQuota,
@ -13,6 +13,7 @@ import {
BasicProvisioner,
AccountProvisioning,
Provisioning,
BasicProvisionerConfig,
} from "@padloc/core/src/provisioning";
import { uuid } from "@padloc/core/src/util";
import { Org, OrgInfo } from "@padloc/core/src/org";
@ -23,7 +24,7 @@ import { HMACKeyParams, HMACParams } from "@padloc/core/src/crypto";
import { URLSearchParams } from "url";
import { Account } from "@padloc/core/src/account";
export class StripeProvisionerConfig extends Config {
export class StripeProvisionerConfig extends BasicProvisionerConfig {
@ConfigParam("string", true)
secretKey!: string;