From 9d3ae0cc6d6789d3aed3f63eb44acd5eb3277589 Mon Sep 17 00:00:00 2001 From: Gareth Latty Date: Wed, 18 Nov 2020 14:29:40 +0000 Subject: [PATCH] Fix bug with deck editing. --- .github/workflows/build.yaml | 2 +- client/src/elm/ManyDecks/Language.elm | 4 ++-- client/src/elm/ManyDecks/Pages/Decks.elm | 7 +++++-- server/src/ts/store.ts | 9 ++++++--- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index fbe4cc6..efec7b8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -79,7 +79,7 @@ jobs: uses: lattyware/push-docker-image-to-version-tags@v2 with: source: "${{ matrix.component }}:${{ env.COMMIT_VERSION }}" - image: "${{ matrix.registry.image-prefix }}${{ matrix.COMPONENT }}" + image: "${{ matrix.registry.image-prefix }}${{ matrix.component }}" hash: "${{ env.COMMIT_VERSION }}" version: "${{ env.GIT_TAG_NAME }}" server: "${{ matrix.registry.server }}" diff --git a/client/src/elm/ManyDecks/Language.elm b/client/src/elm/ManyDecks/Language.elm index d3c8262..1f52713 100644 --- a/client/src/elm/ManyDecks/Language.elm +++ b/client/src/elm/ManyDecks/Language.elm @@ -5,8 +5,8 @@ module ManyDecks.Language exposing type alias Described = - { code : String - , description : String + { code : String -- The full language code. + , description : String -- A description of the language. } diff --git a/client/src/elm/ManyDecks/Pages/Decks.elm b/client/src/elm/ManyDecks/Pages/Decks.elm index 98f4f73..8268fe3 100644 --- a/client/src/elm/ManyDecks/Pages/Decks.elm +++ b/client/src/elm/ManyDecks/Pages/Decks.elm @@ -22,7 +22,6 @@ import ManyDecks.Pages.Decks.Browse as Browse import ManyDecks.Pages.Decks.Edit as Edit import ManyDecks.Pages.Decks.List as List import ManyDecks.Pages.Decks.Messages exposing (Msg(..)) -import ManyDecks.Pages.Decks.Model exposing (CodeAndSummary) import ManyDecks.Pages.Decks.Route as Route exposing (Route(..)) import ManyDecks.Pages.Decks.View as View import ManyDecks.Ports as Ports @@ -84,7 +83,11 @@ update msg model = ( edit, editCmd ) = d |> Edit.init in - ( { model | edit = edit |> Just }, Cmd.batch [ changeRouteIfNeeded, editCmd ] ) + if Just d.author.id == (model.auth |> Maybe.map .id) then + ( { model | edit = edit |> Just }, Cmd.batch [ changeRouteIfNeeded, editCmd ] ) + + else + ( model, GlobalRoute.redirectTo model.navKey (Route.Decks (Route.View code)) ) Nothing -> ( model, GlobalRoute.redirectTo model.navKey (Route.Decks (Route.Edit code)) ) diff --git a/server/src/ts/store.ts b/server/src/ts/store.ts index e3a05e5..b479b56 100644 --- a/server/src/ts/store.ts +++ b/server/src/ts/store.ts @@ -363,12 +363,15 @@ export class Store { } catch (error) { throw new Errors.BadPatch(); } - await client.query( + const result = await client.query( ` - UPDATE manydecks.decks SET deck = $1 WHERE id = $2; + UPDATE manydecks.decks SET deck = $1 WHERE id = $2 AND author = $3; `, - [updated, id] + [updated, id, user] ); + if (result.rowCount === 0) { + throw new Errors.DeckNotFound(); + } return deck; });