return SignedInId(session) > 0
}
-// SignInRequire checks user status from session.
-// It will assign correspoding values to
-// template data map if user has signed in.
-func SignInRequire(redirect bool) martini.Handler {
- return func(r render.Render, data base.TmplData, session sessions.Session) {
- if !IsSignedIn(session) {
- if redirect {
- r.Redirect("/")
- }
- return
- }
-
- user := SignedInUser(session)
- if user == nil {
- r.Redirect("/")
- return
- }
-
- data["IsSigned"] = true
- data["SignedUser"] = user
- data["SignedUserId"] = user.Id
- data["SignedUserName"] = user.LowerName
- }
-}
-
-func SignOutRequire() martini.Handler {
- return func(r render.Render, session sessions.Session) {
- if IsSignedIn(session) {
- r.Redirect("/")
- }
- }
-}
-
type FeedsForm struct {
UserId int64 `form:"userid" binding:"Required"`
- Offset int64 `form:"offset"`
+ Page int64 `form:"p"`
}
type UpdateProfileForm struct {
store := sessions.NewCookieStore([]byte("secret123"))
m.Use(sessions.Sessions("my_session", store))
+ m.Use(middleware.InitContext())
+
// Routers.
- m.Get("/", middleware.SignInRequire(false), routers.Home)
- m.Get("/", auth.SignInRequire(true), routers.Home)
- m.Any("/user/login", auth.SignOutRequire(), binding.BindIgnErr(auth.LogInForm{}), user.SignIn)
- m.Any("/user/logout", auth.SignInRequire(true), user.SignOut)
- m.Any("/user/sign_up", auth.SignOutRequire(), binding.BindIgnErr(auth.RegisterForm{}), user.SignUp)
- m.Any("/user/delete", auth.SignInRequire(true), user.Delete)
++ m.Get("/", middleware.SignInRequire(true), routers.Home)
+ m.Any("/user/login", middleware.SignOutRequire(), binding.BindIgnErr(auth.LogInForm{}), user.SignIn)
+ m.Any("/user/logout", middleware.SignInRequire(true), user.SignOut)
+ m.Any("/user/sign_up", middleware.SignOutRequire(), binding.BindIgnErr(auth.RegisterForm{}), user.SignUp)
+ m.Any("/user/delete", middleware.SignInRequire(true), user.Delete)
m.Get("/user/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds)
- m.Any("/user/setting", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdateProfileForm{}), user.Setting)
- m.Any("/user/setting/password", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.SettingPassword)
- m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys)
- m.Any("/user/setting/notification", auth.SignInRequire(true), user.SettingNotification)
- m.Any("/user/setting/security", auth.SignInRequire(true), user.SettingSecurity)
+ m.Any("/user/setting", middleware.SignInRequire(true), binding.BindIgnErr(auth.UpdateProfileForm{}), user.Setting)
+ m.Any("/user/setting/password", middleware.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.SettingPassword)
+ m.Any("/user/setting/ssh", middleware.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys)
+ m.Any("/user/setting/notification", middleware.SignInRequire(true), user.SettingNotification)
+ m.Any("/user/setting/security", middleware.SignInRequire(true), user.SettingSecurity)
- m.Get("/user/:username", auth.SignInRequire(false), user.Profile)
+ m.Get("/user/:username", middleware.SignInRequire(false), user.Profile)
- m.Any("/repo/create", auth.SignInRequire(true), binding.BindIgnErr(auth.CreateRepoForm{}), repo.Create)
- m.Any("/repo/delete", auth.SignInRequire(true), binding.Bind(auth.DeleteRepoForm{}), repo.Delete)
- m.Any("/repo/list", auth.SignInRequire(false), repo.List)
+ m.Any("/repo/create", middleware.SignInRequire(true), binding.BindIgnErr(auth.CreateRepoForm{}), repo.Create)
+ m.Any("/repo/delete", middleware.SignInRequire(true), binding.Bind(auth.DeleteRepoForm{}), repo.Delete)
+ m.Any("/repo/list", middleware.SignInRequire(false), repo.List)
- m.Get("/:username/:reponame/settings", auth.SignInRequire(false), auth.RepoAssignment(true), repo.Setting)
+ m.Get("/:username/:reponame/settings", middleware.SignInRequire(false), auth.RepoAssignment(true), repo.Setting)
m.Get("/:username/:reponame/tree/:branchname/**",
- auth.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
+ middleware.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
m.Get("/:username/:reponame/tree/:branchname",
- auth.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
- m.Get("/:username/:reponame", auth.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
+ middleware.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
+ m.Get("/:username/:reponame", middleware.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
//m.Get("/:username/:reponame", repo.Repo)