Allow repository admins to hide specific folders from the code browser for non-admin users. Hidden folders are shown dimmed to admins but completely hidden from regular users. Includes database migration, settings UI, tree filtering logic, and frontend support for toggling visibility.
24 lines
689 B
Go
24 lines
689 B
Go
// Copyright 2026 MarketAlly. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package v1_26
|
|
|
|
import (
|
|
"code.gitcaddy.com/server/v3/modules/timeutil"
|
|
|
|
"xorm.io/xorm"
|
|
)
|
|
|
|
// CreateRepoHiddenFolderTable creates the repo_hidden_folder table.
|
|
// Hidden folders are not shown in the code browser for non-admin users.
|
|
func CreateRepoHiddenFolderTable(x *xorm.Engine) error {
|
|
type RepoHiddenFolder struct {
|
|
ID int64 `xorm:"pk autoincr"`
|
|
RepoID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"`
|
|
FolderPath string `xorm:"UNIQUE(s) NOT NULL"`
|
|
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
|
}
|
|
|
|
return x.Sync(new(RepoHiddenFolder))
|
|
}
|