mirror of
https://github.com/fumiama/paper-manager.git
synced 2026-06-11 11:40:23 +08:00
finish 试卷查重
This commit is contained in:
@@ -497,7 +497,7 @@ func (f *FileDatabase) DelFile(lstid, uid int, istemp bool) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !user.IsSuper() {
|
||||
if !user.IsSuper() && !istemp {
|
||||
return ErrInvalidRole
|
||||
}
|
||||
ftable := ""
|
||||
@@ -512,6 +512,9 @@ func (f *FileDatabase) DelFile(lstid, uid int, istemp bool) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if istemp && lst.Uploader != uid {
|
||||
return ErrInvalidRole
|
||||
}
|
||||
if lst.Path == "" || strings.Contains(lst.Path, "..") {
|
||||
return os.ErrNotExist
|
||||
}
|
||||
|
||||
@@ -83,14 +83,20 @@ func (f *FileDatabase) SaveFileToTemp(uploader int, file io.Reader, name string)
|
||||
}
|
||||
|
||||
// ListUploadedFile will select all file that HasntAnalyzed && IsTemp or !HasntAnalyzed && !IsTemp
|
||||
func (f *FileDatabase) ListUploadedFile() (lst []*List, err error) {
|
||||
func (f *FileDatabase) ListUploadedFile(istemp bool) (lst []*List, err error) {
|
||||
q := ""
|
||||
if istemp {
|
||||
q = "WHERE IsTemp ORDER BY UpTime DESC"
|
||||
} else {
|
||||
q = "WHERE (HasntAnalyzed AND IsTemp) OR (NOT HasntAnalyzed AND NOT IsTemp) ORDER BY UpTime DESC"
|
||||
}
|
||||
f.mu.RLock()
|
||||
lst, err = sql.FindAll[List](&f.db, FileTableList, "WHERE (HasntAnalyzed AND IsTemp) OR (NOT HasntAnalyzed AND NOT IsTemp) ORDER BY UpTime DESC")
|
||||
lst, err = sql.FindAll[List](&f.db, FileTableList, q)
|
||||
f.mu.RUnlock()
|
||||
return
|
||||
}
|
||||
|
||||
func (f *FileDatabase) GetFileInfo(id int) (lst List, err error) {
|
||||
func (f *FileDatabase) ListFileByID(id int) (lst List, err error) {
|
||||
f.mu.RLock()
|
||||
lst, err = sql.Find[List](&f.db, FileTableList, "WHERE ID="+strconv.Itoa(id))
|
||||
f.mu.RUnlock()
|
||||
|
||||
Reference in New Issue
Block a user