Default collection and document permissions based on user role
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user