- write config and cron store with 0600 instead of 0644 - check allow list in Slack slash commands and app mentions - pass workspace restrict flag to cron exec tool Closes #179
39 lines
763 B
Go
39 lines
763 B
Go
package cron
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
func TestSaveStore_FilePermissions(t *testing.T) {
|
|
if runtime.GOOS == "windows" {
|
|
t.Skip("file permission bits are not enforced on Windows")
|
|
}
|
|
|
|
tmpDir := t.TempDir()
|
|
storePath := filepath.Join(tmpDir, "cron", "jobs.json")
|
|
|
|
cs := NewCronService(storePath, nil)
|
|
|
|
_, err := cs.AddJob("test", CronSchedule{Kind: "every", EveryMS: int64Ptr(60000)}, "hello", false, "cli", "direct")
|
|
if err != nil {
|
|
t.Fatalf("AddJob failed: %v", err)
|
|
}
|
|
|
|
info, err := os.Stat(storePath)
|
|
if err != nil {
|
|
t.Fatalf("Stat failed: %v", err)
|
|
}
|
|
|
|
perm := info.Mode().Perm()
|
|
if perm != 0600 {
|
|
t.Errorf("cron store has permission %04o, want 0600", perm)
|
|
}
|
|
}
|
|
|
|
func int64Ptr(v int64) *int64 {
|
|
return &v
|
|
}
|