mirror of
https://github.com/docmost/docmost.git
synced 2026-05-07 06:23:06 +08:00
feat(ee): SCIM (#1347)
* SCIM - init (EE) * accept db transaction * sync * Content parser support for scim+json * patch scimmy * sync * return early if userIds is empty * sync * SCIM db table * fixes * scim tokens * backfill * feat(audit): add scim token events * rename scim migration * fix * fix translation * cleanup
This commit is contained in:
@@ -1,105 +0,0 @@
|
||||
diff --git a/dist/index.cjs b/dist/index.cjs
|
||||
index 01d6999642c5ae990083798a1bf0ef87068e4192..891b13c6901f28a6ab413c6dbae0ea726a76a196 100644
|
||||
--- a/dist/index.cjs
|
||||
+++ b/dist/index.cjs
|
||||
@@ -5463,7 +5463,10 @@ var ResizableNodeView = class {
|
||||
this.container.classList.remove(this.classNames.resizing);
|
||||
}
|
||||
document.removeEventListener("mousemove", this.handleMouseMove);
|
||||
+ document.removeEventListener("touchmove", this.handleTouchMove);
|
||||
document.removeEventListener("mouseup", this.handleMouseUp);
|
||||
+ document.removeEventListener("touchend", this.handleMouseUp);
|
||||
+ window.removeEventListener("blur", this.handleMouseUp);
|
||||
document.removeEventListener("keydown", this.handleKeyDown);
|
||||
document.removeEventListener("keyup", this.handleKeyUp);
|
||||
};
|
||||
@@ -5593,7 +5596,10 @@ var ResizableNodeView = class {
|
||||
this.container.classList.remove(this.classNames.resizing);
|
||||
}
|
||||
document.removeEventListener("mousemove", this.handleMouseMove);
|
||||
+ document.removeEventListener("touchmove", this.handleTouchMove);
|
||||
document.removeEventListener("mouseup", this.handleMouseUp);
|
||||
+ document.removeEventListener("touchend", this.handleMouseUp);
|
||||
+ window.removeEventListener("blur", this.handleMouseUp);
|
||||
document.removeEventListener("keydown", this.handleKeyDown);
|
||||
document.removeEventListener("keyup", this.handleKeyUp);
|
||||
this.isResizing = false;
|
||||
@@ -5796,6 +5802,8 @@ var ResizableNodeView = class {
|
||||
document.addEventListener("mousemove", this.handleMouseMove);
|
||||
document.addEventListener("touchmove", this.handleTouchMove);
|
||||
document.addEventListener("mouseup", this.handleMouseUp);
|
||||
+ document.addEventListener("touchend", this.handleMouseUp);
|
||||
+ window.addEventListener("blur", this.handleMouseUp);
|
||||
document.addEventListener("keydown", this.handleKeyDown);
|
||||
document.addEventListener("keyup", this.handleKeyUp);
|
||||
}
|
||||
diff --git a/dist/index.js b/dist/index.js
|
||||
index 6f357a03b038abeb5ed86967b7fc7c3e5eb1d2d6..2d2742532860821984e1ba82625821504538ebbe 100644
|
||||
--- a/dist/index.js
|
||||
+++ b/dist/index.js
|
||||
@@ -5330,7 +5330,10 @@ var ResizableNodeView = class {
|
||||
this.container.classList.remove(this.classNames.resizing);
|
||||
}
|
||||
document.removeEventListener("mousemove", this.handleMouseMove);
|
||||
+ document.removeEventListener("touchmove", this.handleTouchMove);
|
||||
document.removeEventListener("mouseup", this.handleMouseUp);
|
||||
+ document.removeEventListener("touchend", this.handleMouseUp);
|
||||
+ window.removeEventListener("blur", this.handleMouseUp);
|
||||
document.removeEventListener("keydown", this.handleKeyDown);
|
||||
document.removeEventListener("keyup", this.handleKeyUp);
|
||||
};
|
||||
@@ -5460,7 +5463,10 @@ var ResizableNodeView = class {
|
||||
this.container.classList.remove(this.classNames.resizing);
|
||||
}
|
||||
document.removeEventListener("mousemove", this.handleMouseMove);
|
||||
+ document.removeEventListener("touchmove", this.handleTouchMove);
|
||||
document.removeEventListener("mouseup", this.handleMouseUp);
|
||||
+ document.removeEventListener("touchend", this.handleMouseUp);
|
||||
+ window.removeEventListener("blur", this.handleMouseUp);
|
||||
document.removeEventListener("keydown", this.handleKeyDown);
|
||||
document.removeEventListener("keyup", this.handleKeyUp);
|
||||
this.isResizing = false;
|
||||
@@ -5663,6 +5669,8 @@ var ResizableNodeView = class {
|
||||
document.addEventListener("mousemove", this.handleMouseMove);
|
||||
document.addEventListener("touchmove", this.handleTouchMove);
|
||||
document.addEventListener("mouseup", this.handleMouseUp);
|
||||
+ document.addEventListener("touchend", this.handleMouseUp);
|
||||
+ window.addEventListener("blur", this.handleMouseUp);
|
||||
document.addEventListener("keydown", this.handleKeyDown);
|
||||
document.addEventListener("keyup", this.handleKeyUp);
|
||||
}
|
||||
diff --git a/src/lib/ResizableNodeView.ts b/src/lib/ResizableNodeView.ts
|
||||
index f13e210b0aa46aefe7c31105deee3d2aa8a26cd5..9bac138dbf17c6ae6c3c129cbedb3a81bd39b60c 100644
|
||||
--- a/src/lib/ResizableNodeView.ts
|
||||
+++ b/src/lib/ResizableNodeView.ts
|
||||
@@ -523,7 +523,10 @@ export class ResizableNodeView {
|
||||
}
|
||||
|
||||
document.removeEventListener('mousemove', this.handleMouseMove)
|
||||
+ document.removeEventListener('touchmove', this.handleTouchMove)
|
||||
document.removeEventListener('mouseup', this.handleMouseUp)
|
||||
+ document.removeEventListener('touchend', this.handleMouseUp)
|
||||
+ window.removeEventListener('blur', this.handleMouseUp)
|
||||
document.removeEventListener('keydown', this.handleKeyDown)
|
||||
document.removeEventListener('keyup', this.handleKeyUp)
|
||||
this.isResizing = false
|
||||
@@ -774,6 +777,8 @@ export class ResizableNodeView {
|
||||
document.addEventListener('mousemove', this.handleMouseMove)
|
||||
document.addEventListener('touchmove', this.handleTouchMove)
|
||||
document.addEventListener('mouseup', this.handleMouseUp)
|
||||
+ document.addEventListener('touchend', this.handleMouseUp)
|
||||
+ window.addEventListener('blur', this.handleMouseUp)
|
||||
document.addEventListener('keydown', this.handleKeyDown)
|
||||
document.addEventListener('keyup', this.handleKeyUp)
|
||||
}
|
||||
@@ -859,7 +864,10 @@ export class ResizableNodeView {
|
||||
|
||||
// Clean up document-level listeners
|
||||
document.removeEventListener('mousemove', this.handleMouseMove)
|
||||
+ document.removeEventListener('touchmove', this.handleTouchMove)
|
||||
document.removeEventListener('mouseup', this.handleMouseUp)
|
||||
+ document.removeEventListener('touchend', this.handleMouseUp)
|
||||
+ window.removeEventListener('blur', this.handleMouseUp)
|
||||
document.removeEventListener('keydown', this.handleKeyDown)
|
||||
document.removeEventListener('keyup', this.handleKeyUp)
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
diff --git a/dist/cjs/lib/messages.cjs b/dist/cjs/lib/messages.cjs
|
||||
index e74b8f52137e3267f3d065c4210a1114c4f32dd1..5740606b18851c0ac4f55cfa333152359e0ad135 100644
|
||||
--- a/dist/cjs/lib/messages.cjs
|
||||
+++ b/dist/cjs/lib/messages.cjs
|
||||
@@ -502,10 +502,15 @@ class PatchOp {
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
+
|
||||
+ /** Reason: Commented out to avoid failing patch requests when filters don't match.
|
||||
+ * Some IdPs send patch paths like `addresses[type eq "work"].country` even if no such address exists. We can't always decide what the end user IdPs send.
|
||||
+ * Since we manually control patch application, we safely ignore these cases.
|
||||
+ * example error: "noTarget","detail":"Filter 'addresses[type eq \"work\"].country' does not match any values for 'add' op of operation 5 in PatchOp request body
|
||||
+ */
|
||||
// No targets, bail out!
|
||||
- if (targets.length === 0 && op !== "remove")
|
||||
- throw new lib_types.default.Error(400, "noTarget", `Filter '${path}' does not match any values for '${op}' op of operation ${index} in PatchOp request body`);
|
||||
+ // if (targets.length === 0 && op !== "remove")
|
||||
+ // throw new lib_types.default.Error(400, "noTarget", `Filter '${path}' does not match any values for '${op}' op of operation ${index} in PatchOp request body`);
|
||||
|
||||
/**
|
||||
* @typedef {Object} PatchOpDetails
|
||||
Reference in New Issue
Block a user