33c2f4ccb0
Added support for SSL. Added the email system. Not fully tested. Added Email Verification. Added the Emails Page in the Account Manager. Email Activation is now fully supported. Fixed CustomErrorJSQ() and added CustomError(). Added commented out tests for Vestigo. Added tests for the new (possibly temporary) custom router. Swapped some of the custom error blocks for the Account Manager with LocalError calls. Moved the account menu into it's own template.
164 lines
5.0 KiB
Go
164 lines
5.0 KiB
Go
package main
|
|
import "fmt"
|
|
import "log"
|
|
import "bytes"
|
|
import "net/http"
|
|
|
|
func InternalError(err error, w http.ResponseWriter, r *http.Request, user User) {
|
|
log.Fatal(err)
|
|
pi := Page{"Internal Server Error","error",user,nList,tList,"A problem has occured in the system."}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(500)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func InternalErrorJSQ(err error, w http.ResponseWriter, r *http.Request, user User, is_js string) {
|
|
log.Fatal(err)
|
|
errmsg := "A problem has occured in the system."
|
|
if is_js == "0" {
|
|
pi := Page{"Internal Server Error","error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(500)
|
|
fmt.Fprintln(w,errpage)
|
|
} else {
|
|
http.Error(w,"{'errmsg': '" + errmsg + "'}",500)
|
|
}
|
|
}
|
|
|
|
func LocalError(errmsg string, w http.ResponseWriter, r *http.Request, user User) {
|
|
pi := Page{"Local Error","error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(500)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func LoginRequired(w http.ResponseWriter, r *http.Request, user User) {
|
|
pi := Page{"Local Error","error",user,nList,tList,"You need to login to do that."}
|
|
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(401)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func LocalErrorJSQ(errmsg string, w http.ResponseWriter, r *http.Request, user User, is_js string) {
|
|
if is_js == "0" {
|
|
pi := Page{"Local Error","error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(500)
|
|
fmt.Fprintln(w,errpage)
|
|
} else {
|
|
http.Error(w,"{'errmsg': '" + errmsg + "'}",500)
|
|
}
|
|
}
|
|
|
|
func NoPermissions(w http.ResponseWriter, r *http.Request, user User) {
|
|
errmsg := "You don't have permission to do that."
|
|
pi := Page{"Local Error","error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(403)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func NoPermissionsJSQ(w http.ResponseWriter, r *http.Request, user User, is_js string) {
|
|
errmsg := "You don't have permission to do that."
|
|
if is_js == "0" {
|
|
pi := Page{"Local Error","error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(403)
|
|
fmt.Fprintln(w,errpage)
|
|
} else {
|
|
http.Error(w,"{'errmsg': '" + errmsg + "'}",403)
|
|
}
|
|
}
|
|
|
|
func Banned(w http.ResponseWriter, r *http.Request, user User) {
|
|
pi := Page{"Banned","error",user,nList,tList,"You have been banned from this site."}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(403)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func BannedJSQ(w http.ResponseWriter, r *http.Request, user User, is_js string) {
|
|
if is_js == "0" {
|
|
pi := Page{"Banned","error",user,nList,tList,"You have been banned from this site."}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(403)
|
|
fmt.Fprintln(w,errpage)
|
|
} else {
|
|
http.Error(w,"{'errmsg': 'You have been banned from this site.'}",403)
|
|
}
|
|
}
|
|
|
|
func LoginRequiredJSQ(w http.ResponseWriter, r *http.Request, user User, is_js string) {
|
|
if is_js == "0" {
|
|
pi := Page{"Local Error","error",user,nList,tList,"You need to login to do that."}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(401)
|
|
fmt.Fprintln(w,errpage)
|
|
} else {
|
|
http.Error(w,"{'errmsg': 'You need to login to do that.'}",401)
|
|
}
|
|
}
|
|
|
|
func SecurityError(w http.ResponseWriter, r *http.Request, user User) {
|
|
errmsg := "There was a security issue with your request."
|
|
pi := Page{"Security Error","error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(403)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func NotFound(w http.ResponseWriter, r *http.Request, user User) {
|
|
errmsg := "The requested page doesn't exist."
|
|
pi := Page{"Not Found","error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(404)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func CustomError(errmsg string, errcode int, errtitle string, w http.ResponseWriter, r *http.Request, user User) {
|
|
pi := Page{errtitle,"error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(errcode)
|
|
fmt.Fprintln(w,errpage)
|
|
}
|
|
|
|
func CustomErrorJSQ(errmsg string, errcode int, errtitle string, w http.ResponseWriter, r *http.Request, user User, is_js string) {
|
|
if is_js == "0" {
|
|
pi := Page{errtitle,"error",user,nList,tList,errmsg}
|
|
var b bytes.Buffer
|
|
templates.ExecuteTemplate(&b,"error.html", pi)
|
|
errpage := b.String()
|
|
w.WriteHeader(errcode)
|
|
fmt.Fprintln(w,errpage)
|
|
} else {
|
|
http.Error(w,"{'errmsg': '" + errmsg + "'}",errcode)
|
|
}
|
|
}
|