From 3e66377c469674b90066b6e64e5a431cd46ac9a5 Mon Sep 17 00:00:00 2001
From: RandomChars <random@chars.jp>
Date: Tue, 23 Nov 2021 15:10:35 +0900
Subject: [PATCH] check error properly in mustGetUser, fix paths

---
 api/f.go                     | 2 +-
 backend/filesystem/image.go  | 6 +++---
 backend/filesystem/secret.go | 2 +-
 backend/filesystem/user.go   | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/api/f.go b/api/f.go
index 987053e..3745dc5 100644
--- a/api/f.go
+++ b/api/f.go
@@ -43,7 +43,7 @@ func (s *Server) getUser(context *gin.Context) (*store.User, error) {
 }
 
 func (s *Server) mustGetUser(context *gin.Context) *store.User {
-	if user, err := s.getUser(context); err == store.ErrNoEntry {
+	if user, err := s.getUser(context); err == store.ErrNoEntry || err == store.ErrInvalidInput {
 		context.JSON(http.StatusUnauthorized, ErrUnauthorized)
 		return nil
 	} else if doError(context, err) {
diff --git a/backend/filesystem/image.go b/backend/filesystem/image.go
index 3f2b2e4..f1aa541 100644
--- a/backend/filesystem/image.go
+++ b/backend/filesystem/image.go
@@ -267,10 +267,10 @@ func (s *Store) ImageAdd(data []byte, flake string) (*store.Image, error) {
 		return nil, err
 	}
 
-	if err := s.link("../images/"+s.ImageHashSplit(info.Hash), s.ImageSnowflakePath(info.Snowflake)); err != nil {
+	if err := s.link("../hashes/"+s.ImageHashSplit(info.Hash), s.ImageSnowflakePath(info.Snowflake)); err != nil {
 		return nil, err
 	}
-	if err := s.link("../../../images/"+s.ImageHashSplit(info.Hash), s.UserImagesPath(flake)+"/"+info.Snowflake); err != nil {
+	if err := s.link("../../../images/hashes/"+s.ImageHashSplit(info.Hash), s.UserImagesPath(flake)+"/"+info.Snowflake); err != nil {
 		return nil, err
 	}
 
@@ -504,7 +504,7 @@ func (s *Store) ImageTagAdd(flake, tag string) error {
 	s.getLock(flake).Lock()
 	defer s.getLock(flake).Unlock()
 
-	if err := s.link("../../snowflakes/"+flake, s.TagPath(tag)+"/"+flake); err != nil {
+	if err := s.link("../../images/snowflakes/"+flake, s.TagPath(tag)+"/"+flake); err != nil {
 		return err
 	}
 	if err := s.link("../../../../tags/"+tag, s.ImageSnowflakePath(flake)+"/tags/"+tag); err != nil {
diff --git a/backend/filesystem/secret.go b/backend/filesystem/secret.go
index 1fc3600..a98c5eb 100644
--- a/backend/filesystem/secret.go
+++ b/backend/filesystem/secret.go
@@ -35,7 +35,7 @@ func (s *Store) secretAssociate(secret, flake string) error {
 	if s.file(s.SecretPath(secret)) {
 		return store.ErrAlreadyExists
 	}
-	return s.link("../users/"+flake, s.SecretPath(secret))
+	return s.link("../snowflakes/"+flake, s.SecretPath(secret))
 }
 
 // secretDisassociate disassociates a secret.
diff --git a/backend/filesystem/user.go b/backend/filesystem/user.go
index 5d3958c..9d21c6a 100644
--- a/backend/filesystem/user.go
+++ b/backend/filesystem/user.go
@@ -228,7 +228,7 @@ func (s *Store) UserUsername(username string) (*store.User, error) {
 
 // userUsernameAssociate associates user snowflake with specific username.
 func (s *Store) userUsernameAssociate(flake, username string) error {
-	return s.link("../users/"+flake, s.UsernamePath(username))
+	return s.link("../snowflakes/"+flake, s.UsernamePath(username))
 }
 
 // userUsernameDisassociate disassociates specific username.
-- 
GitLab