aboutsummaryrefslogtreecommitdiffstats
path: root/models/error.go
diff options
context:
space:
mode:
authorDavid Svantesson <davidsvantesson@gmail.com>2019-11-02 08:37:05 +0100
committerLunny Xiao <xiaolunwen@gmail.com>2019-11-02 15:37:05 +0800
commit232340f5e3ebe61787021bebea01fd755513c72b (patch)
tree513182b15c4d977bc64dcabafddd536eab4a8bbc /models/error.go
parent9d663dfde68f4f3fd6af302aad47439adb1076ae (diff)
downloadgitea-232340f5e3ebe61787021bebea01fd755513c72b.tar.gz
gitea-232340f5e3ebe61787021bebea01fd755513c72b.zip
Prevent upload (overwrite) of lfs locked file (#8769)
* Check if file is locked on upload file commit. * Better user message if file is locked. * Check lfs lock before creating temporary repository. fix some errors. * move lines * Add comment that enabled setting is checked.
Diffstat (limited to 'models/error.go')
-rw-r--r--models/error.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/models/error.go b/models/error.go
index 995617e83b..505df28868 100644
--- a/models/error.go
+++ b/models/error.go
@@ -647,6 +647,23 @@ func (err ErrLFSLockAlreadyExist) Error() string {
return fmt.Sprintf("lfs lock already exists [rid: %d, path: %s]", err.RepoID, err.Path)
}
+// ErrLFSFileLocked represents a "LFSFileLocked" kind of error.
+type ErrLFSFileLocked struct {
+ RepoID int64
+ Path string
+ UserName string
+}
+
+// IsErrLFSFileLocked checks if an error is a ErrLFSFileLocked.
+func IsErrLFSFileLocked(err error) bool {
+ _, ok := err.(ErrLFSFileLocked)
+ return ok
+}
+
+func (err ErrLFSFileLocked) Error() string {
+ return fmt.Sprintf("File is lfs locked [repo: %d, locked by: %s, path: %s]", err.RepoID, err.UserName, err.Path)
+}
+
// __________ .__ __
// \______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__.
// | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | |