@@ -59,6 +59,7 @@ type User struct {
5959 OtpSecret string `json:"-"`
6060 SsoID string `json:"sso_id"` // unique by sso platform
6161 Authn string `gorm:"type:text" json:"-"`
62+ AllowLdap bool `json:"allow_ldap" gorm:"default:true"`
6263}
6364
6465func (u * User ) IsGuest () bool {
@@ -90,64 +91,124 @@ func (u *User) SetPassword(pwd string) *User {
9091 return u
9192}
9293
94+ func CanSeeHides (permission int32 ) bool {
95+ return permission & 1 == 1
96+ }
97+
9398func (u * User ) CanSeeHides () bool {
94- return u .Permission & 1 == 1
99+ return CanSeeHides (u .Permission )
100+ }
101+
102+ func CanAccessWithoutPassword (permission int32 ) bool {
103+ return (permission >> 1 )& 1 == 1
95104}
96105
97106func (u * User ) CanAccessWithoutPassword () bool {
98- return (u .Permission >> 1 )& 1 == 1
107+ return CanAccessWithoutPassword (u .Permission )
108+ }
109+
110+ func CanAddOfflineDownloadTasks (permission int32 ) bool {
111+ return (permission >> 2 )& 1 == 1
99112}
100113
101114func (u * User ) CanAddOfflineDownloadTasks () bool {
102- return (u .Permission >> 2 )& 1 == 1
115+ return CanAddOfflineDownloadTasks (u .Permission )
116+ }
117+
118+ func CanWrite (permission int32 ) bool {
119+ return (permission >> 3 )& 1 == 1
103120}
104121
105122func (u * User ) CanWrite () bool {
106- return (u .Permission >> 3 )& 1 == 1
123+ return CanWrite (u .Permission )
124+ }
125+
126+ func CanRename (permission int32 ) bool {
127+ return (permission >> 4 )& 1 == 1
107128}
108129
109130func (u * User ) CanRename () bool {
110- return (u .Permission >> 4 )& 1 == 1
131+ return CanRename (u .Permission )
132+ }
133+
134+ func CanMove (permission int32 ) bool {
135+ return (permission >> 5 )& 1 == 1
111136}
112137
113138func (u * User ) CanMove () bool {
114- return (u .Permission >> 5 )& 1 == 1
139+ return CanMove (u .Permission )
140+ }
141+
142+ func CanCopy (permission int32 ) bool {
143+ return (permission >> 6 )& 1 == 1
115144}
116145
117146func (u * User ) CanCopy () bool {
118- return (u .Permission >> 6 )& 1 == 1
147+ return CanCopy (u .Permission )
148+ }
149+
150+ func CanRemove (permission int32 ) bool {
151+ return (permission >> 7 )& 1 == 1
119152}
120153
121154func (u * User ) CanRemove () bool {
122- return (u .Permission >> 7 )& 1 == 1
155+ return CanRemove (u .Permission )
156+ }
157+
158+ func CanWebdavRead (permission int32 ) bool {
159+ return (permission >> 8 )& 1 == 1
123160}
124161
125162func (u * User ) CanWebdavRead () bool {
126- return (u .Permission >> 8 )& 1 == 1
163+ return CanWebdavRead (u .Permission )
164+ }
165+
166+ func CanWebdavManage (permission int32 ) bool {
167+ return (permission >> 9 )& 1 == 1
127168}
128169
129170func (u * User ) CanWebdavManage () bool {
130- return (u .Permission >> 9 )& 1 == 1
171+ return CanWebdavManage (u .Permission )
172+ }
173+
174+ func CanFTPAccess (permission int32 ) bool {
175+ return (permission >> 10 )& 1 == 1
131176}
132177
133178func (u * User ) CanFTPAccess () bool {
134- return (u .Permission >> 10 )& 1 == 1
179+ return CanFTPAccess (u .Permission )
180+ }
181+
182+ func CanFTPManage (permission int32 ) bool {
183+ return (permission >> 11 )& 1 == 1
135184}
136185
137186func (u * User ) CanFTPManage () bool {
138- return (u .Permission >> 11 )& 1 == 1
187+ return CanFTPManage (u .Permission )
188+ }
189+
190+ func CanReadArchives (permission int32 ) bool {
191+ return (permission >> 12 )& 1 == 1
139192}
140193
141194func (u * User ) CanReadArchives () bool {
142- return (u .Permission >> 12 )& 1 == 1
195+ return CanReadArchives (u .Permission )
196+ }
197+
198+ func CanDecompress (permission int32 ) bool {
199+ return (permission >> 13 )& 1 == 1
143200}
144201
145202func (u * User ) CanDecompress () bool {
146- return (u .Permission >> 13 )& 1 == 1
203+ return CanDecompress (u .Permission )
204+ }
205+
206+ func CanShare (permission int32 ) bool {
207+ return (permission >> 14 )& 1 == 1
147208}
148209
149210func (u * User ) CanShare () bool {
150- return (u .Permission >> 14 ) & 1 == 1
211+ return CanShare (u .Permission )
151212}
152213
153214func (u * User ) JoinPath (reqPath string ) (string , error ) {
0 commit comments