@plank-cms/plank 0.15.3 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/assets/index-BUxIRJB1.css +2 -0
- package/dist/admin/assets/index-D7pl1GEz.js +223 -0
- package/dist/admin/index.html +3 -3
- package/dist/index.js +2 -2
- package/dist/migrations/027_roles_contributor_editor.sql +23 -0
- package/dist/migrations/028_editorial_mode_base.sql +49 -0
- package/dist/{server-TQTYSOGD.js → server-P4JVP3GT.js} +328 -68
- package/package.json +4 -4
- package/dist/admin/assets/index-fAjS4w6T.js +0 -223
- package/dist/admin/assets/index-ojuLCat6.css +0 -2
package/dist/admin/index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Plank
|
|
6
|
+
<title>Plank Forge</title>
|
|
7
7
|
|
|
8
8
|
<link rel="icon" type="image/png" href="/admin/favicon.png" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
href="https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&display=swap"
|
|
13
13
|
rel="stylesheet"
|
|
14
14
|
/>
|
|
15
|
-
<script type="module" crossorigin src="/admin/assets/index-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="/admin/assets/index-
|
|
15
|
+
<script type="module" crossorigin src="/admin/assets/index-D7pl1GEz.js"></script>
|
|
16
|
+
<link rel="stylesheet" crossorigin href="/admin/assets/index-BUxIRJB1.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
19
19
|
<div id="root"></div>
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { randomBytes } from "crypto";
|
|
|
7
7
|
import { resolve, join } from "path";
|
|
8
8
|
import fs from "fs-extra";
|
|
9
9
|
import { execa } from "execa";
|
|
10
|
-
var PACKAGE_VERSION = "0.
|
|
10
|
+
var PACKAGE_VERSION = "0.17.0";
|
|
11
11
|
function generateSecret() {
|
|
12
12
|
return randomBytes(32).toString("hex");
|
|
13
13
|
}
|
|
@@ -101,7 +101,7 @@ import { dirname, join as join2, resolve as resolve2 } from "path";
|
|
|
101
101
|
async function start() {
|
|
102
102
|
config({ path: resolve2(process.cwd(), ".env") });
|
|
103
103
|
process.env.PLANK_ADMIN_DIST = join2(dirname(fileURLToPath(import.meta.url)), "admin");
|
|
104
|
-
const { start: startServer } = await import("./server-
|
|
104
|
+
const { start: startServer } = await import("./server-P4JVP3GT.js");
|
|
105
105
|
await startServer();
|
|
106
106
|
}
|
|
107
107
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- Rename User role to Contributor and ensure new default roles exist.
|
|
2
|
+
-- Keep existing IDs so user assignments remain intact.
|
|
3
|
+
|
|
4
|
+
UPDATE plank_roles
|
|
5
|
+
SET name = 'Contributor',
|
|
6
|
+
permissions = '["content-types:read","entries:read","entries:write","entries:delete","media:read","media:write"]'::jsonb
|
|
7
|
+
WHERE name = 'User';
|
|
8
|
+
|
|
9
|
+
UPDATE plank_roles
|
|
10
|
+
SET permissions = '["content-types:read","entries:read","entries:write","entries:delete","media:read","media:write"]'::jsonb
|
|
11
|
+
WHERE name = 'Contributor';
|
|
12
|
+
|
|
13
|
+
INSERT INTO plank_roles (id, name, permissions)
|
|
14
|
+
SELECT md5(random()::text || clock_timestamp()::text),
|
|
15
|
+
'Editor',
|
|
16
|
+
'["content-types:read","entries:read","entries:write","entries:delete","media:read","media:write"]'::jsonb
|
|
17
|
+
WHERE NOT EXISTS (
|
|
18
|
+
SELECT 1 FROM plank_roles WHERE name = 'Editor'
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
UPDATE plank_roles
|
|
22
|
+
SET permissions = '["content-types:read","entries:read","entries:write","entries:delete","media:read","media:write"]'::jsonb
|
|
23
|
+
WHERE name = 'Editor';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
-- Editorial Mode base: viewer role, user enabled flag and review workflow columns.
|
|
2
|
+
|
|
3
|
+
INSERT INTO plank_roles (id, name, permissions)
|
|
4
|
+
SELECT md5(random()::text || clock_timestamp()::text),
|
|
5
|
+
'Viewer',
|
|
6
|
+
'["content-types:read","entries:read","media:read"]'::jsonb
|
|
7
|
+
WHERE NOT EXISTS (
|
|
8
|
+
SELECT 1 FROM plank_roles WHERE name = 'Viewer'
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
UPDATE plank_roles
|
|
12
|
+
SET permissions = '["content-types:read","entries:read","media:read"]'::jsonb
|
|
13
|
+
WHERE name = 'Viewer';
|
|
14
|
+
|
|
15
|
+
INSERT INTO plank_settings (namespace, key, value)
|
|
16
|
+
VALUES ('general', 'editorial_mode', 'false')
|
|
17
|
+
ON CONFLICT (namespace, key) DO NOTHING;
|
|
18
|
+
|
|
19
|
+
ALTER TABLE plank_users
|
|
20
|
+
ADD COLUMN IF NOT EXISTS enabled BOOLEAN NOT NULL DEFAULT TRUE;
|
|
21
|
+
|
|
22
|
+
DO $$
|
|
23
|
+
DECLARE
|
|
24
|
+
tbl TEXT;
|
|
25
|
+
BEGIN
|
|
26
|
+
FOR tbl IN SELECT table_name FROM plank_content_types LOOP
|
|
27
|
+
IF NOT EXISTS (
|
|
28
|
+
SELECT 1 FROM information_schema.columns
|
|
29
|
+
WHERE table_name = tbl AND column_name = 'editor_id'
|
|
30
|
+
) THEN
|
|
31
|
+
EXECUTE format('ALTER TABLE %I ADD COLUMN editor_id TEXT REFERENCES plank_users(id) ON DELETE SET NULL', tbl);
|
|
32
|
+
END IF;
|
|
33
|
+
|
|
34
|
+
IF NOT EXISTS (
|
|
35
|
+
SELECT 1 FROM information_schema.columns
|
|
36
|
+
WHERE table_name = tbl AND column_name = 'review_locked_by_editor'
|
|
37
|
+
) THEN
|
|
38
|
+
EXECUTE format('ALTER TABLE %I ADD COLUMN review_locked_by_editor BOOLEAN NOT NULL DEFAULT FALSE', tbl);
|
|
39
|
+
END IF;
|
|
40
|
+
|
|
41
|
+
IF NOT EXISTS (
|
|
42
|
+
SELECT 1 FROM information_schema.columns
|
|
43
|
+
WHERE table_name = tbl AND column_name = 'review_rejected'
|
|
44
|
+
) THEN
|
|
45
|
+
EXECUTE format('ALTER TABLE %I ADD COLUMN review_rejected BOOLEAN NOT NULL DEFAULT FALSE', tbl);
|
|
46
|
+
END IF;
|
|
47
|
+
END LOOP;
|
|
48
|
+
END;
|
|
49
|
+
$$;
|