From 33b1342f64f3e89969b762e234212224420bdbfe Mon Sep 17 00:00:00 2001 From: veypi Date: Thu, 23 Dec 2021 20:04:58 +0800 Subject: [PATCH] update --- file/public.go | 54 + oaf/package.json | 1 + oaf/src/api/ajax.ts | 54 +- oaf/src/api/interface.ts | 8 +- oaf/src/components/app.vue | 2 +- oaf/src/components/avatar/avatar.vue | 4 +- oaf/src/components/frame.vue | 4 +- oaf/src/components/uploader/uploader.vue | 2 +- oaf/src/oaer/package.json | 28 + oaf/src/oaer/postcss.config.js | 6 + oaf/src/oaer/src/api/ajax.ts | 86 + oaf/src/oaer/src/api/app.ts | 31 + oaf/src/oaer/src/api/index.ts | 18 + oaf/src/oaer/src/api/interface.ts | 65 + oaf/src/oaer/src/api/setting.ts | 19 + oaf/src/oaer/src/api/user.ts | 33 + oaf/src/oaer/src/assets/icon.js | 1 + oaf/src/oaer/src/components/app.vue | 36 + oaf/src/oaer/src/components/file.vue | 42 + oaf/src/oaer/src/components/user.vue | 7 + oaf/src/oaer/src/evt/index.ts | 12 + oaf/src/oaer/src/frame.vue | 91 ++ oaf/src/oaer/src/index.ts | 24 + oaf/src/oaer/src/main.vue | 125 ++ oaf/src/oaer/src/models/index.ts | 111 ++ oaf/src/oaer/src/theme/index.ts | 72 + oaf/src/oaer/tailwind.config.js | 11 + oaf/src/oaer/tsconfig.json | 15 + oaf/src/oaer/vite.config.ts | 7 + oaf/src/oaer/yarn.lock | 1904 ++++++++++++++++++++++ oaf/src/theme/index.ts | 1 + oaf/src/views/app.vue | 2 +- oaf/src/views/app/setting.vue | 2 +- oaf/src/views/home.vue | 4 +- oaf/src/views/user_setting.vue | 4 +- oaf/yarn.lock | 11 + 36 files changed, 2866 insertions(+), 31 deletions(-) create mode 100644 file/public.go create mode 100644 oaf/src/oaer/package.json create mode 100644 oaf/src/oaer/postcss.config.js create mode 100644 oaf/src/oaer/src/api/ajax.ts create mode 100644 oaf/src/oaer/src/api/app.ts create mode 100644 oaf/src/oaer/src/api/index.ts create mode 100644 oaf/src/oaer/src/api/interface.ts create mode 100644 oaf/src/oaer/src/api/setting.ts create mode 100644 oaf/src/oaer/src/api/user.ts create mode 100644 oaf/src/oaer/src/assets/icon.js create mode 100644 oaf/src/oaer/src/components/app.vue create mode 100644 oaf/src/oaer/src/components/file.vue create mode 100644 oaf/src/oaer/src/components/user.vue create mode 100644 oaf/src/oaer/src/evt/index.ts create mode 100644 oaf/src/oaer/src/frame.vue create mode 100644 oaf/src/oaer/src/index.ts create mode 100644 oaf/src/oaer/src/main.vue create mode 100644 oaf/src/oaer/src/models/index.ts create mode 100644 oaf/src/oaer/src/theme/index.ts create mode 100644 oaf/src/oaer/tailwind.config.js create mode 100644 oaf/src/oaer/tsconfig.json create mode 100644 oaf/src/oaer/vite.config.ts create mode 100644 oaf/src/oaer/yarn.lock diff --git a/file/public.go b/file/public.go new file mode 100644 index 0000000..5b9a546 --- /dev/null +++ b/file/public.go @@ -0,0 +1,54 @@ +package file + +import ( + "github.com/veypi/OneAuth/cfg" + "github.com/veypi/OneAuth/libs/auth" + "github.com/veypi/OneAuth/libs/oerr" + "github.com/veypi/OneAuth/oalib" + "github.com/veypi/OneBD" + "github.com/veypi/OneBD/rfc" + "github.com/veypi/utils/log" + "net/http" + "strconv" +) + +/** +* @name: user +* @author: veypi +* @date: 2021-12-04 11:49 +* @description:user +**/ +func appFileChecker(w http.ResponseWriter, r *http.Request) (prefix string, mountPoint string, ownerID string, actorID string, err error) { + m := w.(OneBD.Meta) + uuid := m.Params("uuid") + p := &oalib.PayLoad{} + h := r.Header.Get("auth_token") + if h == "" { + h = m.Query("auth_token") + } + log.Warn().Msgf("|%s|%s|", r.Header.Get("auth_token"), m.Query("auth_token")) + var ok bool + ok, err = p.ParseToken(h, cfg.CFG.APPKey) + if !ok { + err = oerr.NoAuth + return + } + l := p.GetAuth(auth.APP, uuid) + if !l.CanRead() { + err = oerr.NoAuth + } + if !l.CanDelete() && r.Method == rfc.MethodDelete { + err = oerr.NoAuth + } + if !l.CanUpdate() && (r.Method == "PUT" || r.Method == "MKCOL" || r.Method == "COPY" || r.Method == "MOVE") { + err = oerr.NoAuth + } + if err != nil { + return + } + actorID = strconv.Itoa(int(p.ID)) + ownerID = uuid + mountPoint = uuid + prefix = cfg.CFG.FileUrlPrefix + "/app/" + uuid + "/" + return +} diff --git a/oaf/package.json b/oaf/package.json index 7c71964..f80cc90 100644 --- a/oaf/package.json +++ b/oaf/package.json @@ -30,6 +30,7 @@ "path-posix": "^1.0.0" }, "devDependencies": { + "@veypi/oaer": "file:src/oaer", "@types/node": "^16.11.12", "@vitejs/plugin-vue": "^1.9.3", "less": "^4.1.2", diff --git a/oaf/src/api/ajax.ts b/oaf/src/api/ajax.ts index 5d7dd08..d8e1c74 100644 --- a/oaf/src/api/ajax.ts +++ b/oaf/src/api/ajax.ts @@ -2,19 +2,39 @@ import axios from 'axios' import {store} from '@/store' -function baseRequests(url: string, method: any = 'GET', query: any, data: any, success: any, fail?: Function) { +function getQueryVariable(variable: string) { + let query = window.location.search.substring(1) + let vars = query.split('&') + for (let i = 0; i < vars.length; i++) { + let pair = vars[i].split('=') + if (pair[0] == variable) { + return pair[1] + } + } + return '' +} + +function baseRequests(url: string, method: any = 'GET', query: any, data: any, success: any, fail?: Function, header?: any) { + let headers = { + auth_token: localStorage.auth_token || decodeURIComponent(getQueryVariable('token') as string), + } + if (header) { + headers = Object.assign(headers, header) + } return axios({ url: url, params: query, data: data, method: method, - headers: { - auth_token: localStorage.auth_token - } + headers: headers, }).then((res: any) => { if ('auth_token' in res.headers) { localStorage.auth_token = res.headers.auth_token } + if ('redirect_url' in res.headers) { + window.location.href = res.headers.redirect_url + return + } if (method === 'HEAD') { success(res.headers) } else { @@ -42,24 +62,24 @@ function baseRequests(url: string, method: any = 'GET', query: any, data: any, s } const ajax = { - get(url: '', data = {}, success = {}, fail?: Function) { - return baseRequests(url, 'GET', data, {}, success, fail) + get(url: '', data = {}, success = {}, fail?: Function, header?: any) { + return baseRequests(url, 'GET', data, {}, success, fail, header) }, - head(url: '', data = {}, success = {}, fail?: Function) { - return baseRequests(url, 'HEAD', data, {}, success, fail) + head(url: '', data = {}, success = {}, fail?: Function, header?: any) { + return baseRequests(url, 'HEAD', data, {}, success, fail, header) }, - delete(url: '', data = {}, success = {}, fail?: Function) { - return baseRequests(url, 'DELETE', data, {}, success, fail) + delete(url: '', data = {}, success = {}, fail?: Function, header?: any) { + return baseRequests(url, 'DELETE', data, {}, success, fail, header) }, - post(url: '', data = {}, success = {}, fail?: Function) { - return baseRequests(url, 'POST', {}, data, success, fail) + post(url: '', data = {}, success = {}, fail?: Function, header?: any) { + return baseRequests(url, 'POST', {}, data, success, fail, header) }, - put(url: '', data = {}, success = {}, fail?: Function) { - return baseRequests(url, 'PUT', {}, data, success, fail) + put(url: '', data = {}, success = {}, fail?: Function, header?: any) { + return baseRequests(url, 'PUT', {}, data, success, fail, header) + }, + patch(url: '', data = {}, success = {}, fail?: Function, header?: any) { + return baseRequests(url, 'PATCH', {}, data, success, fail, header) }, - patch(url: '', data = {}, success = {}, fail?: Function) { - return baseRequests(url, 'PATCH', {}, data, success, fail) - } } export default ajax diff --git a/oaf/src/api/interface.ts b/oaf/src/api/interface.ts index 5a0fae1..babc42a 100644 --- a/oaf/src/api/interface.ts +++ b/oaf/src/api/interface.ts @@ -1,4 +1,4 @@ -import {store} from "@/store"; +import {store} from "@/store" export type SuccessFunction = (e: any) => void; export type FailedFunction = (e: any) => void; @@ -12,11 +12,13 @@ export class Interface { private readonly method: Function private readonly api: string private readonly data: any + private readonly header: any - constructor(method: Function, api: string, data?: any) { + constructor(method: Function, api: string, data?: any, headers?: any) { this.method = method this.api = api this.data = data + this.header = headers } Start(success?: SuccessFunction, fail?: FailedFunction) { @@ -56,6 +58,6 @@ export class Interface { newFail(data) } } - this.method(this.api, this.data, newSuccess, newFail) + this.method(this.api, this.data, newSuccess, newFail, this.header) } } diff --git a/oaf/src/components/app.vue b/oaf/src/components/app.vue index 72ff081..b0bde0c 100644 --- a/oaf/src/components/app.vue +++ b/oaf/src/components/app.vue @@ -2,7 +2,7 @@
- +
diff --git a/oaf/src/components/avatar/avatar.vue b/oaf/src/components/avatar/avatar.vue index 773be09..e9578f9 100644 --- a/oaf/src/components/avatar/avatar.vue +++ b/oaf/src/components/avatar/avatar.vue @@ -1,7 +1,7 @@