36 lines
829 B
Go
36 lines
829 B
Go
package controllers
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/revel/cron"
|
|
"github.com/revel/modules/jobs/app/jobs"
|
|
"github.com/revel/revel"
|
|
)
|
|
|
|
type Jobs struct {
|
|
*revel.Controller
|
|
}
|
|
|
|
func (c Jobs) Status() revel.Result {
|
|
remoteAddress := c.Request.RemoteAddr
|
|
if revel.Config.BoolDefault("jobs.acceptproxyaddress", false) {
|
|
if proxiedAddress := c.Request.GetHttpHeader("X-Forwarded-For"); proxiedAddress!="" {
|
|
remoteAddress = proxiedAddress
|
|
}
|
|
}
|
|
if !strings.HasPrefix(remoteAddress, "127.0.0.1") &&
|
|
!strings.HasPrefix(remoteAddress, "::1") &&
|
|
!strings.HasPrefix(remoteAddress, "[::1]") {
|
|
return c.Forbidden("%s is not local", remoteAddress)
|
|
}
|
|
entries := jobs.MainCron.Entries()
|
|
return c.Render(entries)
|
|
}
|
|
|
|
func init() {
|
|
revel.TemplateFuncs["castjob"] = func(job cron.Job) *jobs.Job {
|
|
return job.(*jobs.Job)
|
|
}
|
|
}
|