@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.
@@ -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 Admin</title>
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-fAjS4w6T.js"></script>
16
- <link rel="stylesheet" crossorigin href="/admin/assets/index-ojuLCat6.css">
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.15.3";
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-TQTYSOGD.js");
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
+ $$;