Loading repl/command.go +8 −0 Original line number Diff line number Diff line Loading @@ -1337,6 +1337,14 @@ If -1 is specified, messages will become permanent.`, MinArgs: 1, MaxArgs: 1, Action: ActionSetDefaultExpire, Flags: dclish.Flags{ "/FOLDER": { Description: `/FOLDER=foldername Specifies the folder for which the default expire is to modified. If not specified, the system default expire is modified.`, }, }, }, "EXPIRE_LIMIT": { Description: `Specifies expiration limit that is allowed for messages. Non-privileged Loading repl/set.go +17 −1 Original line number Diff line number Diff line Loading @@ -193,8 +193,24 @@ func setExpire(cmd *dclish.Command, expire func(context.Context, int64) error) e // ActionSetDefaultExpire handles the `SET DEFAULT_EXPIRE` command. func ActionSetDefaultExpire(cmd *dclish.Command) error { folderName := cmd.Flags["/ALL"].Value if folderName == "" { return setExpire(cmd, this.Q.UpdateDefaultExpire) } isOwner, err := folders.IsFolderOwner(folderName, this.User.Login) if err != nil { return err } if !isOwner || this.User.Admin == 0 { return errors.New("privileges needed for changing defaults") } value, err := strconv.ParseInt(cmd.Args[0], 10, 64) if err != nil { return err } ctx := storage.Context() return this.Q.UpdateFolderExpire(ctx, value, folderName) } // ActionSetExpireLimit handles the `SET EXPIRE_LIMIT` command. func ActionSetExpireLimit(cmd *dclish.Command) error { Loading storage/folders.sql.go +12 −0 Original line number Diff line number Diff line Loading @@ -290,6 +290,18 @@ func (q *Queries) UpdateFolderAlways(ctx context.Context, always int64, name str return err } const updateFolderExpire = `-- name: UpdateFolderExpire :exec UPDATE folders SET expire = ? WHERE name = ? ` // UpdateFolderExpire updates the default expiration (in days) for a folder. // // UPDATE folders SET expire = ? WHERE name = ? func (q *Queries) UpdateFolderExpire(ctx context.Context, expire int64, name string) error { _, err := q.db.ExecContext(ctx, updateFolderExpire, expire, name) return err } const updateFolderMain = `-- name: UpdateFolderMain :exec UPDATE folders SET description = ?, owner = ?, name = ?3 WHERE name = ?4 ` Loading storage/queries/folders.sql +4 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,10 @@ SELECT 1 FROM folders WHERE name = ? AND owner = ?; -- name: GetFolderExpire :one SELECT expire FROM folders WHERE name = ?; -- UpdateFolderExpire updates the default expiration (in days) for a folder. -- name: UpdateFolderExpire :exec UPDATE folders SET expire = ? WHERE name = ?; -- UpdateFolderAlways updates the always setting for a folder. -- name: UpdateFolderAlways :exec UPDATE folders SET always = ? WHERE name = ?; Loading Loading
repl/command.go +8 −0 Original line number Diff line number Diff line Loading @@ -1337,6 +1337,14 @@ If -1 is specified, messages will become permanent.`, MinArgs: 1, MaxArgs: 1, Action: ActionSetDefaultExpire, Flags: dclish.Flags{ "/FOLDER": { Description: `/FOLDER=foldername Specifies the folder for which the default expire is to modified. If not specified, the system default expire is modified.`, }, }, }, "EXPIRE_LIMIT": { Description: `Specifies expiration limit that is allowed for messages. Non-privileged Loading
repl/set.go +17 −1 Original line number Diff line number Diff line Loading @@ -193,8 +193,24 @@ func setExpire(cmd *dclish.Command, expire func(context.Context, int64) error) e // ActionSetDefaultExpire handles the `SET DEFAULT_EXPIRE` command. func ActionSetDefaultExpire(cmd *dclish.Command) error { folderName := cmd.Flags["/ALL"].Value if folderName == "" { return setExpire(cmd, this.Q.UpdateDefaultExpire) } isOwner, err := folders.IsFolderOwner(folderName, this.User.Login) if err != nil { return err } if !isOwner || this.User.Admin == 0 { return errors.New("privileges needed for changing defaults") } value, err := strconv.ParseInt(cmd.Args[0], 10, 64) if err != nil { return err } ctx := storage.Context() return this.Q.UpdateFolderExpire(ctx, value, folderName) } // ActionSetExpireLimit handles the `SET EXPIRE_LIMIT` command. func ActionSetExpireLimit(cmd *dclish.Command) error { Loading
storage/folders.sql.go +12 −0 Original line number Diff line number Diff line Loading @@ -290,6 +290,18 @@ func (q *Queries) UpdateFolderAlways(ctx context.Context, always int64, name str return err } const updateFolderExpire = `-- name: UpdateFolderExpire :exec UPDATE folders SET expire = ? WHERE name = ? ` // UpdateFolderExpire updates the default expiration (in days) for a folder. // // UPDATE folders SET expire = ? WHERE name = ? func (q *Queries) UpdateFolderExpire(ctx context.Context, expire int64, name string) error { _, err := q.db.ExecContext(ctx, updateFolderExpire, expire, name) return err } const updateFolderMain = `-- name: UpdateFolderMain :exec UPDATE folders SET description = ?, owner = ?, name = ?3 WHERE name = ?4 ` Loading
storage/queries/folders.sql +4 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,10 @@ SELECT 1 FROM folders WHERE name = ? AND owner = ?; -- name: GetFolderExpire :one SELECT expire FROM folders WHERE name = ?; -- UpdateFolderExpire updates the default expiration (in days) for a folder. -- name: UpdateFolderExpire :exec UPDATE folders SET expire = ? WHERE name = ?; -- UpdateFolderAlways updates the always setting for a folder. -- name: UpdateFolderAlways :exec UPDATE folders SET always = ? WHERE name = ?; Loading