UserPermission and GroupPermission models (#5860)

* fix: rename to group_permissions

* fix: delete null collectionId records before setting non null constraint

* fix: use scope with collectionId not null

* fix: update model with documentId

* fix: rename to GroupPermission

* fix: rename collection_users to user_permissions

* fix: teamPermanentDeleter test

* fix: use scope with collectionId not null

* fix: update model with documentId

* fix: rename to UserPermission

* fix: create views upon table rename for zero downtime

* fix: remove comments
This commit is contained in:
Apoorv Mishra
2023-09-25 10:51:29 +05:30
committed by GitHub
parent 43bdb97639
commit 7145f7ef51
22 changed files with 558 additions and 123 deletions

View File

@@ -1,5 +1,5 @@
import { AttachmentPreset, CollectionPermission } from "@shared/types";
import { CollectionUser } from "@server/models";
import { UserPermission } from "@server/models";
import Attachment from "@server/models/Attachment";
import {
buildUser,
@@ -123,7 +123,7 @@ describe("#attachments.create", () => {
collectionId: collection.id,
});
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,

View File

@@ -1,6 +1,6 @@
import { CollectionPermission } from "@shared/types";
import { colorPalette } from "@shared/utils/collections";
import { Document, CollectionUser, CollectionGroup } from "@server/models";
import { Document, UserPermission, GroupPermission } from "@server/models";
import {
buildUser,
buildAdmin,
@@ -310,7 +310,7 @@ describe("#collections.export", () => {
const collection = await buildCollection({ teamId: team.id });
collection.permission = null;
await collection.save();
await CollectionUser.create({
await UserPermission.create({
createdById: admin.id,
collectionId: collection.id,
userId: admin.id,
@@ -750,13 +750,13 @@ describe("#collections.group_memberships", () => {
permission: null,
teamId: user.teamId,
});
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,
permission: CollectionPermission.ReadWrite,
});
await CollectionGroup.create({
await GroupPermission.create({
createdById: user.id,
collectionId: collection.id,
groupId: group.id,
@@ -792,19 +792,19 @@ describe("#collections.group_memberships", () => {
permission: null,
teamId: user.teamId,
});
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,
permission: CollectionPermission.ReadWrite,
});
await CollectionGroup.create({
await GroupPermission.create({
createdById: user.id,
collectionId: collection.id,
groupId: group.id,
permission: CollectionPermission.ReadWrite,
});
await CollectionGroup.create({
await GroupPermission.create({
createdById: user.id,
collectionId: collection.id,
groupId: group2.id,
@@ -835,19 +835,19 @@ describe("#collections.group_memberships", () => {
permission: null,
teamId: user.teamId,
});
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,
permission: CollectionPermission.ReadWrite,
});
await CollectionGroup.create({
await GroupPermission.create({
createdById: user.id,
collectionId: collection.id,
groupId: group.id,
permission: CollectionPermission.ReadWrite,
});
await CollectionGroup.create({
await GroupPermission.create({
createdById: user.id,
collectionId: collection.id,
groupId: group2.id,
@@ -926,7 +926,7 @@ describe("#collections.memberships", () => {
const user2 = await buildUser({
name: "Won't find",
});
await CollectionUser.create({
await UserPermission.create({
createdById: user2.id,
collectionId: collection.id,
userId: user2.id,
@@ -953,13 +953,13 @@ describe("#collections.memberships", () => {
teamId: team.id,
});
const user2 = await buildUser();
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,
permission: CollectionPermission.ReadWrite,
});
await CollectionUser.create({
await UserPermission.create({
createdById: user2.id,
collectionId: collection.id,
userId: user2.id,
@@ -1026,7 +1026,7 @@ describe("#collections.info", () => {
});
collection.permission = null;
await collection.save();
await CollectionUser.destroy({
await UserPermission.destroy({
where: {
collectionId: collection.id,
userId: user.id,
@@ -1050,7 +1050,7 @@ describe("#collections.info", () => {
});
collection.permission = null;
await collection.save();
await CollectionUser.create({
await UserPermission.create({
collectionId: collection.id,
userId: user.id,
createdById: user.id,
@@ -1342,7 +1342,7 @@ describe("#collections.update", () => {
const collection = await buildCollection({ teamId: team.id });
collection.permission = null;
await collection.save();
await CollectionUser.create({
await UserPermission.create({
collectionId: collection.id,
userId: admin.id,
createdById: admin.id,
@@ -1371,7 +1371,7 @@ describe("#collections.update", () => {
const collection = await buildCollection({ teamId: team.id });
collection.permission = null;
await collection.save();
await CollectionUser.create({
await UserPermission.create({
collectionId: collection.id,
userId: admin.id,
createdById: admin.id,
@@ -1432,7 +1432,7 @@ describe("#collections.update", () => {
});
collection.permission = null;
await collection.save();
await CollectionUser.update(
await UserPermission.update(
{
createdById: user.id,
permission: CollectionPermission.Read,

View File

@@ -16,8 +16,8 @@ import { transaction } from "@server/middlewares/transaction";
import validate from "@server/middlewares/validate";
import {
Collection,
CollectionUser,
CollectionGroup,
UserPermission,
GroupPermission,
Team,
Event,
User,
@@ -220,7 +220,7 @@ router.post(
const group = await Group.findByPk(groupId);
authorize(user, "read", group);
let membership = await CollectionGroup.findOne({
let membership = await GroupPermission.findOne({
where: {
collectionId: id,
groupId,
@@ -228,7 +228,7 @@ router.post(
});
if (!membership) {
membership = await CollectionGroup.create({
membership = await GroupPermission.create({
collectionId: id,
groupId,
permission,
@@ -310,7 +310,7 @@ router.post(
}).findByPk(id);
authorize(user, "read", collection);
let where: WhereOptions<CollectionGroup> = {
let where: WhereOptions<GroupPermission> = {
collectionId: id,
};
let groupWhere;
@@ -340,8 +340,8 @@ router.post(
};
const [total, memberships] = await Promise.all([
CollectionGroup.count(options),
CollectionGroup.findAll({
GroupPermission.count(options),
GroupPermission.findAll({
...options,
order: [["createdAt", "DESC"]],
offset: ctx.state.pagination.offset,
@@ -379,7 +379,7 @@ router.post(
const user = await User.findByPk(userId);
authorize(actor, "read", user);
let membership = await CollectionUser.findOne({
let membership = await UserPermission.findOne({
where: {
collectionId: id,
userId,
@@ -389,7 +389,7 @@ router.post(
});
if (!membership) {
membership = await CollectionUser.create(
membership = await UserPermission.create(
{
collectionId: id,
userId,
@@ -485,7 +485,7 @@ router.post(
}).findByPk(id);
authorize(user, "read", collection);
let where: WhereOptions<CollectionUser> = {
let where: WhereOptions<UserPermission> = {
collectionId: id,
};
let userWhere;
@@ -515,8 +515,8 @@ router.post(
};
const [total, memberships] = await Promise.all([
CollectionUser.count(options),
CollectionUser.findAll({
UserPermission.count(options),
UserPermission.findAll({
...options,
order: [["createdAt", "DESC"]],
offset: ctx.state.pagination.offset,
@@ -627,7 +627,7 @@ router.post(
permission !== CollectionPermission.ReadWrite &&
collection.permission === CollectionPermission.ReadWrite
) {
await CollectionUser.findOrCreate({
await UserPermission.findOrCreate({
where: {
collectionId: collection.id,
userId: user.id,

View File

@@ -5,11 +5,11 @@ import {
View,
Revision,
Backlink,
CollectionUser,
UserPermission,
SearchQuery,
Event,
User,
CollectionGroup,
GroupPermission,
} from "@server/models";
import DocumentHelper from "@server/models/helpers/DocumentHelper";
import {
@@ -905,7 +905,7 @@ describe("#documents.list", () => {
collectionId: collection.id,
});
await CollectionUser.update(
await UserPermission.update(
{
userId: user.id,
permission: CollectionPermission.Read,
@@ -1606,7 +1606,7 @@ describe("#documents.search", () => {
permission: null,
});
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,
@@ -1973,7 +1973,7 @@ describe("#documents.viewed", () => {
documentId: document.id,
userId: user.id,
});
await CollectionUser.destroy({
await UserPermission.destroy({
where: {
userId: user.id,
collectionId: collection.id,
@@ -2997,7 +2997,7 @@ describe("#documents.update", () => {
userId: user.id,
teamId: user.teamId,
});
await CollectionUser.update(
await UserPermission.update(
{
userId: user.id,
permission: CollectionPermission.ReadWrite,
@@ -3104,7 +3104,7 @@ describe("#documents.update", () => {
teamId: team.id,
});
await CollectionUser.update(
await UserPermission.update(
{
createdById: user.id,
permission: CollectionPermission.ReadWrite,
@@ -3142,7 +3142,7 @@ describe("#documents.update", () => {
collectionId: collection.id,
teamId: team.id,
});
await CollectionUser.update(
await UserPermission.update(
{
createdById: user.id,
permission: CollectionPermission.Read,
@@ -3178,7 +3178,7 @@ describe("#documents.update", () => {
});
collection.permission = CollectionPermission.Read;
await collection.save();
await CollectionUser.destroy({
await UserPermission.destroy({
where: {
userId: user.id,
collectionId: collection.id,
@@ -3773,25 +3773,25 @@ describe("#documents.users", () => {
// add people and groups to collection
await Promise.all([
CollectionUser.create({
UserPermission.create({
collectionId: collection.id,
userId: alan.id,
permission: CollectionPermission.Read,
createdById: user.id,
}),
CollectionUser.create({
UserPermission.create({
collectionId: collection.id,
userId: bret.id,
permission: CollectionPermission.Read,
createdById: user.id,
}),
CollectionUser.create({
UserPermission.create({
collectionId: collection.id,
userId: ken.id,
permission: CollectionPermission.Read,
createdById: user.id,
}),
CollectionGroup.create({
GroupPermission.create({
collectionId: collection.id,
groupId: group.id,
permission: CollectionPermission.ReadWrite,
@@ -3863,19 +3863,19 @@ describe("#documents.users", () => {
// add people to collection
await Promise.all([
CollectionUser.create({
UserPermission.create({
collectionId: collection.id,
userId: alan.id,
permission: CollectionPermission.Read,
createdById: user.id,
}),
CollectionUser.create({
UserPermission.create({
collectionId: collection.id,
userId: bret.id,
permission: CollectionPermission.Read,
createdById: user.id,
}),
CollectionUser.create({
UserPermission.create({
collectionId: collection.id,
userId: ken.id,
permission: CollectionPermission.Read,

View File

@@ -1,4 +1,4 @@
import { CollectionUser, Revision } from "@server/models";
import { UserPermission, Revision } from "@server/models";
import {
buildCollection,
buildDocument,
@@ -175,7 +175,7 @@ describe("#revisions.list", () => {
await Revision.createFromDocument(document);
collection.permission = null;
await collection.save();
await CollectionUser.destroy({
await UserPermission.destroy({
where: {
userId: user.id,
collectionId: collection.id,

View File

@@ -1,5 +1,5 @@
import { CollectionPermission } from "@shared/types";
import { CollectionUser, Share } from "@server/models";
import { UserPermission, Share } from "@server/models";
import {
buildUser,
buildDocument,
@@ -240,7 +240,7 @@ describe("#shares.create", () => {
});
collection.permission = null;
await collection.save();
await CollectionUser.update(
await UserPermission.update(
{
userId: user.id,
permission: CollectionPermission.Read,

View File

@@ -1,5 +1,5 @@
import { CollectionPermission } from "@shared/types";
import { View, CollectionUser } from "@server/models";
import { View, UserPermission } from "@server/models";
import {
buildAdmin,
buildCollection,
@@ -71,7 +71,7 @@ describe("#views.list", () => {
});
collection.permission = null;
await collection.save();
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,
@@ -150,7 +150,7 @@ describe("#views.create", () => {
});
collection.permission = null;
await collection.save();
await CollectionUser.create({
await UserPermission.create({
createdById: user.id,
collectionId: collection.id,
userId: user.id,