Default collection and document permissions based on user role

This commit is contained in:
Tom Moor
2024-04-02 19:59:35 -04:00
parent 4311aac4ff
commit 3f7d351aee
2 changed files with 17 additions and 4 deletions

View File

@@ -7,6 +7,7 @@ import { useTranslation } from "react-i18next";
import { toast } from "sonner";
import styled from "styled-components";
import { s } from "@shared/styles";
import { DocumentPermission, UserRole } from "@shared/types";
import Document from "~/models/Document";
import Share from "~/models/Share";
import CopyToClipboard from "~/components/CopyToClipboard";
@@ -150,12 +151,19 @@ function SharePopover({
section: UserSection,
perform: async () => {
await Promise.all(
pendingIds.map((userId) =>
userMemberships.create({
pendingIds.map((userId) => {
const user = users.get(userId);
return userMemberships.create({
documentId: document.id,
userId,
})
)
permission:
user?.role === UserRole.Viewer ||
user?.role === UserRole.Guest
? DocumentPermission.Read
: DocumentPermission.ReadWrite,
});
})
);
if (pendingIds.length === 1) {

View File

@@ -2,6 +2,7 @@ import { observer } from "mobx-react";
import * as React from "react";
import { useTranslation } from "react-i18next";
import { toast } from "sonner";
import { CollectionPermission, UserRole } from "@shared/types";
import Collection from "~/models/Collection";
import User from "~/models/User";
import Invite from "~/scenes/Invite";
@@ -51,6 +52,10 @@ function AddPeopleToCollection({ collection }: Props) {
const handleAddUser = async (user: User) => {
try {
await memberships.create({
permission:
user.role === UserRole.Viewer || user.role === UserRole.Guest
? CollectionPermission.Read
: CollectionPermission.ReadWrite,
collectionId: collection.id,
userId: user.id,
});