You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.2 KiB
46 lines
2.2 KiB
-- The membership `access_all` flag was Vaultwarden's pre-permissions patch for "this member can
|
|
-- reach every collection". It is now fully represented by the role model: Owners/Admins hold it
|
|
-- implicitly, and a Custom member holds it via `edit_any_collection`. Drop the redundant column.
|
|
-- This only concerns users_organizations; groups.access_all is a separate, still-supported feature.
|
|
--
|
|
-- `ALTER TABLE ... DROP COLUMN` is deliberately NOT used here: it only exists since SQLite 3.35.0,
|
|
-- while a `sqlite_system` build links whatever the host provides and libsqlite3-sys accepts 3.34.1
|
|
-- (which is what Debian 11 ships). Forward migrations have to run on every supported build, so use
|
|
-- the portable table rebuild instead -- the same pattern as
|
|
-- 2022-03-02-210038_update_devices_primary_key. Vaultwarden runs SQLite migrations with
|
|
-- `PRAGMA foreign_keys = OFF`, so dropping the old table does not cascade into groups_users.
|
|
CREATE TABLE users_organizations_new (
|
|
uuid TEXT NOT NULL PRIMARY KEY,
|
|
user_uuid TEXT NOT NULL REFERENCES users (uuid),
|
|
org_uuid TEXT NOT NULL REFERENCES organizations (uuid),
|
|
|
|
akey TEXT NOT NULL,
|
|
status INTEGER NOT NULL,
|
|
atype INTEGER NOT NULL,
|
|
reset_password_key TEXT,
|
|
external_id TEXT,
|
|
invited_by_email TEXT DEFAULT NULL,
|
|
manage_users BOOLEAN NOT NULL DEFAULT FALSE,
|
|
manage_groups BOOLEAN NOT NULL DEFAULT FALSE,
|
|
manage_policies BOOLEAN NOT NULL DEFAULT FALSE,
|
|
create_new_collections BOOLEAN NOT NULL DEFAULT FALSE,
|
|
edit_any_collection BOOLEAN NOT NULL DEFAULT FALSE,
|
|
delete_any_collection BOOLEAN NOT NULL DEFAULT FALSE,
|
|
|
|
UNIQUE (user_uuid, org_uuid)
|
|
);
|
|
|
|
INSERT INTO users_organizations_new (
|
|
uuid, user_uuid, org_uuid, akey, status, atype, reset_password_key, external_id,
|
|
invited_by_email, manage_users, manage_groups, manage_policies,
|
|
create_new_collections, edit_any_collection, delete_any_collection
|
|
)
|
|
SELECT
|
|
uuid, user_uuid, org_uuid, akey, status, atype, reset_password_key, external_id,
|
|
invited_by_email, manage_users, manage_groups, manage_policies,
|
|
create_new_collections, edit_any_collection, delete_any_collection
|
|
FROM users_organizations;
|
|
|
|
DROP TABLE users_organizations;
|
|
|
|
ALTER TABLE users_organizations_new RENAME TO users_organizations;
|
|
|