diff --git a/frontend/src/components/deployment/Deployment.tsx b/frontend/src/components/deployment/Deployment.tsx
index 2341d4ae9..7ff188119 100644
--- a/frontend/src/components/deployment/Deployment.tsx
+++ b/frontend/src/components/deployment/Deployment.tsx
@@ -1,8 +1,10 @@
+import { useParams } from "@solidjs/router";
import { Component, Show } from "solid-js";
import { useAppDimensions } from "../../state/DimensionProvider";
import { useAppState } from "../../state/StateProvider";
import { useUser } from "../../state/UserProvider";
-import { combineClasses } from "../../util/helpers";
+import { PermissionLevel } from "../../types";
+import { combineClasses, getId } from "../../util/helpers";
import NotFound from "../NotFound";
import Grid from "../shared/layout/Grid";
import Actions from "./Actions";
@@ -13,31 +15,20 @@ import DeploymentTabs from "./tabs/Tabs";
import Updates from "./Updates";
const Deployment: Component<{}> = (p) => {
- const { servers, deployments, selected } = useAppState();
- const deployment = () => deployments.get(selected.id()!);
- const server = () => deployment() && servers.get(deployment()?.serverID!);
- const { themeClass } = useTheme();
+ const { servers, deployments } = useAppState();
+ const params = useParams();
+ const deployment = () => deployments.get(params.id);
+ const server = () => deployment() && servers.get(deployment()!.deployment.server_id);
const { isSemiMobile } = useAppDimensions();
- const { permissions, username } = useUser();
- const userCanUpdate = () => {
- if (permissions() > 1) {
- return true;
- } else if (
- permissions() > 0 &&
- deployment()!.owners.includes(username()!)
- ) {
- return true;
- } else {
- return false;
- }
- };
+ const { user } = useUser();
+ const userCanUpdate = () => user().admin || deployment()?.deployment.permissions![getId(user())] === PermissionLevel.Update;
return (
}
>
-
+
{/* left / actions */}
@@ -50,7 +41,7 @@ const Deployment: Component<{}> = (p) => {
+
you do not have permission to view this deployment
}