mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-10-28 15:46:58 +09:00
## Description closes #4068 <img width="267" alt="image" src="https://github.com/user-attachments/assets/ba0d6287-1391-4f03-b513-cdd07a180a11"> AuthorizationContext - splitted on 4 types, user, token, service, anonymous (before was a mix making it hard to understand permissions) Clone - needs 2 contexts source and destination. ## Steps for reproduction - **Log in as "Vasya Pupkin".** `5de6:vasya@pupkin.com` - **Create a project.** - **Generate a ShareLink.** - **Copy the ShareLink.** `https://p-636d568a-0a42-43d7-9509-8b23607cd5e8-dot-clone-project.development.webstudio.is/?authToken=da7ef507-c91b-4393-a1fe-91848ba533c9&mode=preview` - **Log out.** --- - **Log in as another user.** - **Paste the ShareLink then clone the project.** - **See title etc in clone dialog** <img width="588" alt="image" src="https://github.com/user-attachments/assets/0a04ae59-548e-48ca-871c-d01c91778194"> - **Log out.** --- - **Paste the ShareLink then clone the project.** - **Login process** - **See title etc in clone dialog after the login** <img width="588" alt="image" src="https://github.com/user-attachments/assets/0a04ae59-548e-48ca-871c-d01c91778194"> - **Log out.** --- - **Paste ShareLink in the, go to the menu and copy the clone link.** <img width="417" alt="image" src="https://github.com/user-attachments/assets/5f2911c1-721c-4c36-8ad7-b91052c9f9c1"> `https://clone-project.development.webstudio.is/dashboard?projectToCloneAuthToken=da7ef507-c91b-4393-a1fe-91848ba533c9` --- - **Log in as "Vasya Pupkin".** - **Remove cloning permission for the project.** - **Log out.** --- Paste `https://clone-project.development.webstudio.is/dashboard?projectToCloneAuthToken=da7ef507-c91b-4393-a1fe-91848ba533c9` See "unexpected server error" --- ## Code Review - [ ] hi @kof, I need you to do - conceptual review (architecture, feature-correctness) - detailed review (read every line) - test it on preview ## Before requesting a review - [ ] made a self-review - [ ] added inline comments where things may be not obvious (the "why", not "what") ## Before merging - [ ] tested locally and on preview environment (preview dev login: 5de6) - [ ] updated [test cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md) document - [ ] added tests - [ ] if any new env variables are added, added them to `.env` file --------- Co-authored-by: Oleg Isonen <oleg008@gmail.com>
19 lines
792 B
TypeScript
19 lines
792 B
TypeScript
export type SessionData = {
|
|
userId: string;
|
|
createdAt: number;
|
|
};
|
|
|
|
export const getSessionCookieNameVersion = () => {
|
|
// IMPORTANT: If you see an error here, you need to increase the version number.
|
|
// Explanation:
|
|
// Changing the SessionData type will cause all existing user sessions to not work as expected.
|
|
// There is no logic to validate or clean up sessions, so we avoid session migration issues by changing the session cookie name.
|
|
// This ensures that old sessions are invalidated and new sessions are created with the updated structure.
|
|
const obj: SessionData = { userId: "", createdAt: 0 };
|
|
obj.userId = "";
|
|
|
|
// IMPORTANT: Change version in the SaaS platform as well!
|
|
// IMPORTANT: Changing the version will cause all users to be logged out.
|
|
return "3";
|
|
};
|