mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-24 15:49:42 +02:00
feat: Additional Household Permissions (#4158)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
This commit is contained in:
parent
b1820f9b23
commit
fd0257c1b8
37 changed files with 690 additions and 185 deletions
|
@ -1,34 +1,44 @@
|
|||
import { computed } from "@nuxtjs/composition-api";
|
||||
import { computed, Ref } from "@nuxtjs/composition-api";
|
||||
import { Recipe } from "~/lib/api/types/recipe";
|
||||
import { HouseholdSummary } from "~/lib/api/types/household";
|
||||
import { UserOut } from "~/lib/api/types/user";
|
||||
|
||||
export function useRecipePermissions(recipe: Recipe, user: UserOut | null) {
|
||||
const canEditRecipe = computed(() => {
|
||||
// Check recipe owner
|
||||
if (!user?.id) {
|
||||
return false;
|
||||
}
|
||||
if (user.id === recipe.userId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check group and household
|
||||
if (user.groupId !== recipe.groupId) {
|
||||
return false;
|
||||
}
|
||||
if (user.householdId !== recipe.householdId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check recipe
|
||||
if (recipe.settings?.locked) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
return {
|
||||
canEditRecipe,
|
||||
export function useRecipePermissions(
|
||||
recipe: Recipe,
|
||||
recipeHousehold: Ref<HouseholdSummary | undefined>,
|
||||
user: UserOut | null,
|
||||
) {
|
||||
const canEditRecipe = computed(() => {
|
||||
// Check recipe owner
|
||||
if (!user?.id) {
|
||||
return false;
|
||||
}
|
||||
if (user.id === recipe.userId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check group and household
|
||||
if (user.groupId !== recipe.groupId) {
|
||||
return false;
|
||||
}
|
||||
if (user.householdId !== recipe.householdId) {
|
||||
if (!recipeHousehold.value?.preferences) {
|
||||
return false;
|
||||
}
|
||||
if (recipeHousehold.value?.preferences.lockRecipeEditsFromOtherHouseholds) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Check recipe
|
||||
if (recipe.settings?.locked) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
return {
|
||||
canEditRecipe,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue