nice progressbar and correct authentication header
This commit is contained in:
		@@ -10,6 +10,7 @@ import (
 | 
			
		||||
func addUploadHandler() {
 | 
			
		||||
	api.AddHandler("fileupload", api.VideoNode, api.PermUser, func(ctx api.Context) {
 | 
			
		||||
		fmt.Println("we are in file upload handler")
 | 
			
		||||
		fmt.Printf("permission: %s\n", ctx.PermID().String())
 | 
			
		||||
 | 
			
		||||
		req := ctx.GetRequest()
 | 
			
		||||
 | 
			
		||||
@@ -30,6 +31,7 @@ func addUploadHandler() {
 | 
			
		||||
 | 
			
		||||
			var read int64
 | 
			
		||||
			var p float32
 | 
			
		||||
			// todo check where we want to place this file
 | 
			
		||||
			dst, err := os.OpenFile(part.FileName(), os.O_WRONLY|os.O_CREATE, 0644)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return
 | 
			
		||||
@@ -41,7 +43,6 @@ func addUploadHandler() {
 | 
			
		||||
				cBytes, err := part.Read(buffer)
 | 
			
		||||
				if cBytes > 0 {
 | 
			
		||||
					read = read + int64(cBytes)
 | 
			
		||||
					//fmt.Printf("read: %v \n",read )
 | 
			
		||||
					p = float32(read) / float32(length) * 100
 | 
			
		||||
					fmt.Printf("progress: %v \n", p)
 | 
			
		||||
					dst.Write(buffer[0:cBytes])
 | 
			
		||||
@@ -53,6 +54,8 @@ func addUploadHandler() {
 | 
			
		||||
					break
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			_ = dst.Close()
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		ctx.Text("finished")
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@ const (
 | 
			
		||||
	LoginNode    = "login"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func AddHandler(action string, apiNode string, perm uint8, handler func(ctx Context)) {
 | 
			
		||||
func AddHandler(action string, apiNode string, perm Perm, handler func(ctx Context)) {
 | 
			
		||||
	http.Handle(fmt.Sprintf("/api/%s/%s", apiNode, action), http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
 | 
			
		||||
		srvPwd := settings.GetPassword()
 | 
			
		||||
		if srvPwd == nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -13,12 +13,18 @@ import (
 | 
			
		||||
 | 
			
		||||
var srv *server.Server
 | 
			
		||||
 | 
			
		||||
type Perm uint8
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PermAdmin        uint8 = iota
 | 
			
		||||
	PermUser         uint8 = iota
 | 
			
		||||
	PermUnauthorized uint8 = iota
 | 
			
		||||
	PermAdmin Perm = iota
 | 
			
		||||
	PermUser
 | 
			
		||||
	PermUnauthorized
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (p Perm) String() string {
 | 
			
		||||
	return [...]string{"PermAdmin", "PermUser", "PermUnauthorized"}[p]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const SignKey = "89013f1753a6890c6090b09e3c23ff43"
 | 
			
		||||
const TokenExpireHours = 24
 | 
			
		||||
 | 
			
		||||
@@ -27,7 +33,7 @@ type Token struct {
 | 
			
		||||
	ExpiresAt int64
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TokenValid(token string) (int, uint8) {
 | 
			
		||||
func TokenValid(token string) (int, Perm) {
 | 
			
		||||
	t, err := jwt.ParseWithClaims(token, &jwt.StandardClaims{}, func(token *jwt.Token) (interface{}, error) {
 | 
			
		||||
		return []byte(SignKey), nil
 | 
			
		||||
	})
 | 
			
		||||
@@ -42,7 +48,7 @@ func TokenValid(token string) (int, uint8) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return -1, PermUnauthorized
 | 
			
		||||
	}
 | 
			
		||||
	return id, uint8(permid)
 | 
			
		||||
	return id, Perm(permid)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func InitOAuth() {
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,7 @@ type Context interface {
 | 
			
		||||
	GetRequest() *http.Request
 | 
			
		||||
	GetWriter() http.ResponseWriter
 | 
			
		||||
	UserID() int
 | 
			
		||||
	PermID() Perm
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type apicontext struct {
 | 
			
		||||
@@ -20,7 +21,7 @@ type apicontext struct {
 | 
			
		||||
	request         *http.Request
 | 
			
		||||
	responseWritten bool
 | 
			
		||||
	userid          int
 | 
			
		||||
	permid          uint8
 | 
			
		||||
	permid          Perm
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *apicontext) GetRequest() *http.Request {
 | 
			
		||||
@@ -58,3 +59,7 @@ func (r *apicontext) Error(msg string) {
 | 
			
		||||
func (r *apicontext) Errorf(msg string, args ...interface{}) {
 | 
			
		||||
	r.Error(fmt.Sprintf(msg, &args))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *apicontext) PermID() Perm {
 | 
			
		||||
	return r.permid
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user