Skip to content

Commit

Permalink
Merge pull request #505 from Quintessential-SFT/permissions
Browse files Browse the repository at this point in the history
Schema Permissions #1y7mkjx
  • Loading branch information
kkopanidis committed Dec 29, 2021
2 parents b08d463 + f2d0371 commit 6eb77a1
Show file tree
Hide file tree
Showing 38 changed files with 500 additions and 207 deletions.
10 changes: 1 addition & 9 deletions libraries/grpc-sdk/src/classes/ConduitSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export class ConduitSchema {
readonly fields: ConduitModel;
readonly collectionName: string;
readonly schemaOptions: ConduitModelOptions;
private ownerModule?: string;
ownerModule: string = 'unknown';

constructor(
name: string,
Expand All @@ -23,14 +23,6 @@ export class ConduitSchema {
}
}

get owner(): string | undefined {
return this.ownerModule;
}

set owner(owner: string | undefined) {
this.ownerModule = owner;
}

get modelSchema(): ConduitModel {
return this.fields;
}
Expand Down
6 changes: 6 additions & 0 deletions libraries/grpc-sdk/src/interfaces/Model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ export interface ConduitModel {
export interface ConduitModelOptions {
timestamps?: boolean;
_id?: boolean;
permissions?: {
extendable: boolean,
canCreate: boolean,
canModify: 'Everything' | 'Nothing' | 'ExtensionOnly',
canDelete: boolean,
},
conduit?: {
[field: string]: any,
};
Expand Down
12 changes: 8 additions & 4 deletions modules/actor/src/models/ActorFlow.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ const schema = {
type: TYPE.String,
required: true,
unique: true,
systemRequired: true,
},
trigger: {
type: {
Expand All @@ -20,7 +19,6 @@ const schema = {
options: TYPE.JSON,
},
required: true,
systemRequired: true,
},
actors: {
type: [
Expand All @@ -32,7 +30,6 @@ const schema = {
},
],
required: true,
systemRequired: true,
},
enabled: {
type: TYPE.Boolean,
Expand All @@ -43,7 +40,14 @@ const schema = {
};
const schemaOptions = {
timestamps: true,
systemRequired: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;

Expand Down
11 changes: 8 additions & 3 deletions modules/actor/src/models/ActorRun.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,10 @@ const schema = {
type: TYPE.Relation,
model: 'ActorFlow',
required: true,
systemRequired: true,
},
data: {
type: TYPE.JSON,
required: false,
systemRequired: true,
},
status: {
type: TYPE.String,
Expand All @@ -26,7 +24,14 @@ const schema = {
};
const schemaOptions = {
timestamps: true,
systemRequired: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;

Expand Down
13 changes: 8 additions & 5 deletions modules/authentication/src/models/AccessToken.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,30 @@ const schema = {
userId: {
type: TYPE.Relation,
model: 'User',
systemRequired: true,
},
clientId: {
type: TYPE.String,
required: true,
systemRequired: true,
},
token: {
type: TYPE.String,
systemRequired: true,
},
expiresOn: {
type: TYPE.Date,
systemRequired: true,
},
createdAt: TYPE.Date,
updatedAt: TYPE.Date,
};
const schemaOptions = {
timestamps: true,
systemRequired: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;

Expand Down
17 changes: 10 additions & 7 deletions modules/authentication/src/models/RefreshToken.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,34 @@ const schema = {
userId: {
type: TYPE.Relation,
model: 'User',
systemRequired: true,
},
clientId: {
type: TYPE.String,
required: true,
systemRequired: true,
},
token: {
type: TYPE.String,
systemRequired: true,
},
expiresOn: {
type: TYPE.Date,
systemRequired: true,
},
securityDetails: {
macAddress: { type: TYPE.String, systemRequired: true },
userAgent: { type: TYPE.String, systemRequired: true },
macAddress: { type: TYPE.String },
userAgent: { type: TYPE.String },
},
createdAt: TYPE.Date,
updatedAt: TYPE.Date,
};
const schemaOptions = {
timestamps: true,
systemRequired: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;

Expand Down
12 changes: 8 additions & 4 deletions modules/authentication/src/models/Service.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,27 @@ const schema = {
type: TYPE.String,
unique: true,
required: true,
systemRequired: true,
},
hashedToken: {
type: TYPE.String,
systemRequired: true,
},
active: {
type: TYPE.Boolean,
default: true,
systemRequired: true,
},
createdAt: TYPE.Date,
updatedAt: TYPE.Date,
};
const schemaOptions = {
timestamps: true,
systemRequired: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;
export class Service extends ConduitActiveSchema<Service> {
Expand Down
13 changes: 8 additions & 5 deletions modules/authentication/src/models/Token.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,30 @@ const schema = {
_id: TYPE.ObjectId,
type: {
type: TYPE.String,
systemRequired: true,
},
userId: {
type: TYPE.Relation,
model: 'User',
systemRequired: true,
},
token: {
type: TYPE.String,
systemRequired: true,
},
data: {
type: TYPE.JSON,
systemRequired: true,
},
createdAt: TYPE.Date,
updatedAt: TYPE.Date,
};
const schemaOptions = {
timestamps: true,
systemRequired: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;

Expand Down
36 changes: 12 additions & 24 deletions modules/authentication/src/models/User.schema.ts
Original file line number Diff line number Diff line change
@@ -1,107 +1,95 @@
import {
ConduitActiveSchema,
ConduitModel,
ConduitModelOptions,
DatabaseProvider,
TYPE,
} from '@quintessential-sft/conduit-grpc-sdk';

const schemaOptions = {
timestamps: true,
systemRequired: true,
};
const collectionName = undefined;
const schema = {
_id: TYPE.ObjectId,
// do not add unique again, since this will fail due to emails being null
email: {
type: TYPE.String,
required: false,
systemRequired: true,
},
hashedPassword: {
type: TYPE.String,
select: false,
systemRequired: true,
},
google: {
id: {
type: TYPE.String,
systemRequired: true,
},
token: {
type: TYPE.String,
systemRequired: true,
},
tokenExpires: {
type: TYPE.Date,
systemRequired: true,
},
},
facebook: {
id: {
type: TYPE.String,
systemRequired: true,
},
token: {
type: TYPE.String,
systemRequired: true,
},
// tokenExpires: {
// type: TYPE.String,
// systemRequired: true,
// },
},
kakao: {
id: {
type: TYPE.String,
systemRequired: true,
},
token: {
type: TYPE.String,
systemRequired: true,
},
tokenExpires: {
type: TYPE.String,
systemRequired: true,
},
profile_image_url: TYPE.String,
thumbnail_image_url: TYPE.String,
},
twitch: {
id: {
type: TYPE.String,
systemRequired: true,
},
token: {
type: TYPE.String,
systemRequired: true,
},
tokenExpires: {
type: TYPE.String,
systemRequired: true,
},
profile_image_url: TYPE.String,
},
active: {
type: TYPE.Boolean,
default: true,
systemRequired: true,
},
isVerified: {
type: TYPE.Boolean,
default: false,
systemRequired: true,
},
hasTwoFA: {
type: TYPE.Boolean,
default: false,
systemRequired: true,
},
phoneNumber: TYPE.String,
createdAt: TYPE.Date,
updatedAt: TYPE.Date,
};
const schemaOptions = {
timestamps: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;

export class User extends ConduitActiveSchema<User> {
private static _instance: User;
Expand Down
9 changes: 8 additions & 1 deletion modules/chat/src/models/ChatRoom.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,14 @@ const schema = {
};
const schemaOptions = {
timestamps: true,
systemRequired: true,
conduit: {
permissions: {
extendable: true,
canCreate: false,
canModify: 'ExtensionOnly',
canDelete: false,
},
},
};
const collectionName = undefined;

Expand Down
Loading

0 comments on commit 6eb77a1

Please sign in to comment.