engine

package
v0.0.0-...-4fb2365 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2020 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Content

func Content(ctx interface{}, panel types.GetPanelFn)

Content call the Content method of defaultAdapter. If defaultAdapter is nil, it will panic. Engine.Adapter(interface)不能為空,利用cookie驗證使用者,取得role、permission、menu,接著檢查權限,執行模板並導入HTML

func Register

func Register(ada adapter.WebFrameWork)

Register set default adapter of engine. 建立引擎預設的配適器

func User

func User(ctx interface{}) (models.UserModel, bool)

User call the User method of defaultAdapter. 回傳adapter(adapter.WebFrameWork(interface))的User方法,在adapter\gin\gin.go中 從ctx中取得cookie,接著利用cookie可以取得用戶角色、權限以及可用menu,最後得到UserModel,但UserModel.Base.Conn = nil(因ReleaseConn方法)

Types

type ConnectionSetter

type ConnectionSetter func(db.Connection)

連接設置器

type Engine

type Engine struct {
	// GetRequest回傳插件中的所有路徑
	// InitPlugin初始化插件,類似於初始化資料庫並設置及配置路徑
	PluginList []plugins.Plugin     //interface
	Adapter    adapter.WebFrameWork //interface
	//Services在modules\service\service.go
	Services   service.List //Services類別為map[string]Service,Service為interface(Name方法)
	NavButtons types.Buttons
	// contains filtered or unexported fields
}

Engine is the core component of goAdmin. It has two attributes. PluginList is an array of plugin. Adapter is the adapter of web framework context and goAdmin context. The relationship of adapter and plugin is that the adapter use the plugin which contains routers and controller methods to inject into the framework entity and make it work. 核心組件,有PluginList及Adapter兩個屬性

func Default

func Default() *Engine

Default return the default engine instance. 回傳預設的Engine(struct)

func (*Engine) AddAdapter

func (eng *Engine) AddAdapter(ada adapter.WebFrameWork) *Engine

AddAdapter add the adapter of engine. 設定Engine.Adapter與defaultAdapter,回傳設定Engine(struct)

func (*Engine) AddAuthService

func (eng *Engine) AddAuthService(processor auth.Processor) *Engine

AddAuthService customize the auth logic with given callback function. 增加身分驗證,回傳Engine

func (*Engine) AddConfig

func (eng *Engine) AddConfig(cfg config.Config) *Engine

AddConfig set the global config. 設置global config後初始化所有資料庫連線(設置Engine.Services)並啟動引擎

func (*Engine) AddConfigFromINI

func (eng *Engine) AddConfigFromINI(path string) *Engine

AddConfigFromINI set the global config from ini file.

func (*Engine) AddConfigFromJSON

func (eng *Engine) AddConfigFromJSON(path string) *Engine

AddConfigFromJSON set the global config from json file.

func (*Engine) AddConfigFromYAML

func (eng *Engine) AddConfigFromYAML(path string) *Engine

AddConfigFromYAML set the global config from yaml file.

func (*Engine) AddDisplayFilterLimit

func (eng *Engine) AddDisplayFilterLimit(limit int) *Engine

AddDisplayFilterLimit call types.AddDisplayFilterLimit. 加入func(value string) string至FieldDisplay.DisplayProcessFnChains([]DisplayProcessFn) 透過參數limit判斷func(value string)回傳的值

func (*Engine) AddDisplayFilterSubstr

func (eng *Engine) AddDisplayFilterSubstr(start int, end int) *Engine

AddDisplayFilterSubstr call types.AddDisplayFilterSubstr. 加入func(value string) string至參數globalDisplayProcessChains([]DisplayProcessFn) 透過參數start、end判斷func(value string)回傳的值

func (*Engine) AddDisplayFilterToLower

func (eng *Engine) AddDisplayFilterToLower() *Engine

AddDisplayFilterToLower call types.AddDisplayFilterToLower. 加入func(value string) string至globalDisplayProcessChains([]DisplayProcessFn) func(value string)回傳值為strings.ToLower(value)

func (*Engine) AddDisplayFilterToTitle

func (eng *Engine) AddDisplayFilterToTitle() *Engine

AddDisplayFilterToTitle call types.AddDisplayFilterToTitle. 加入func(value string) string至globalDisplayProcessChains([]DisplayProcessFn) func(value string)回傳值為strings.Title(value)

func (*Engine) AddDisplayFilterToUpper

func (eng *Engine) AddDisplayFilterToUpper() *Engine

AddDisplayFilterToUpper call types.AddDisplayFilterToUpper. 加入func(value string) string至globalDisplayProcessChains([]DisplayProcessFn) func(value string)回傳值為strings.ToUpper(value)

func (*Engine) AddDisplayFilterTrimSpace

func (eng *Engine) AddDisplayFilterTrimSpace() *Engine

AddDisplayFilterTrimSpace call types.AddDisplayFilterTrimSpace. 加入func(value string) string至DisplayProcessFnChains([]DisplayProcessFn) func(value string)回傳值為strings.TrimSpace(value)

func (*Engine) AddDisplayFilterXssFilter

func (eng *Engine) AddDisplayFilterXssFilter() *Engine

AddDisplayFilterXssFilter call types.AddDisplayFilterXssFilter. 加入func(value string) string至globalDisplayProcessChains([]DisplayProcessFn) func(value string)回傳值為html.EscapeString(value)

func (*Engine) AddDisplayFilterXssJsFilter

func (eng *Engine) AddDisplayFilterXssJsFilter() *Engine

AddDisplayFilterXssJsFilter call types.AddDisplayFilterXssJsFilter. 加入func(value string) string至globalDisplayProcessChains([]DisplayProcessFn) func(value string)回傳值為replacer.Replace(value)

func (*Engine) AddGenerator

func (eng *Engine) AddGenerator(key string, g table.Generator) *Engine

AddGenerator add table model generator. AddGenerator將參數key及g(function)添加至Admin.tableList(map[string]Generator)

func (*Engine) AddGenerators

func (eng *Engine) AddGenerators(list ...table.GeneratorList) *Engine

AddGenerators add the admin generators. 判斷plug是否存在,如存在則透過參數LIST(多個)判斷GeneratorList已經有該key、value,如果不存在則加入該鍵與值至Admin.tableList 如不存在,設置的Admin(struct)加至Engine.PluginList

func (*Engine) AddGlobalDisplayProcessFn

func (eng *Engine) AddGlobalDisplayProcessFn(f types.DisplayProcessFn) *Engine

AddGlobalDisplayProcessFn call types.AddGlobalDisplayProcessFn. 將參數f(func(string) string)加入globalDisplayProcessChains([]DisplayProcessFn)

func (*Engine) AddNavButtons

func (eng *Engine) AddNavButtons(title template2.HTML, icon string, action types.Action) *Engine

AddNavButtons add the nav buttons. Action是interface 新增一個NavButton(struct)並設置至Engine.NavButtons

func (*Engine) AddPlugins

func (eng *Engine) AddPlugins(plugs ...plugins.Plugin) *Engine

AddPlugins add the plugins and initialize them. 增加plugins以及初始化

func (*Engine) AdminPlugin

func (eng *Engine) AdminPlugin() *admin.Admin

AdminPlugin get the admin plugin. if not exist, create one. 判斷plug是否存在,如存在則將plug轉換成Admin(struct)類別並回傳 如不存在,設置的Admin(struct)加至Engine.PluginList並回傳Admin(struct)

func (*Engine) Clone

func (eng *Engine) Clone(e *Engine) *Engine

Clone copy a new Engine. 複製一個新Engine

func (*Engine) ClonedBySetter

func (eng *Engine) ClonedBySetter(setter Setter) *Engine

ClonedBySetter copy a new Engine by a setter callback function. 透過Setter(function)複製一個新Engine

func (*Engine) Content

func (eng *Engine) Content(ctx interface{}, panel types.GetPanelFn)

Content call the Content method of engine adapter. If adapter is nil, it will panic. Engine.Adapter(interface)不能為空,// 利用cookie驗證使用者,取得role、permission、menu,接著檢查權限,執行模板並導入HTML

func (*Engine) DB

func (eng *Engine) DB(driver string) db.Connection

DB return the db connection of given driver. 透過參數(driver)找到匹配的Service(interface)後回傳Connection(interface)型態 Service(interface)也具有db.Connection(interface)型態,因為都具有Name方法

func (*Engine) Data

func (eng *Engine) Data(method, url string, handler context.Handler, noAuth ...bool)

Data inject the route and corresponding handler to the web framework. 將route以及相對應的處理程序加入Web框架 設置context.Context增加handlers、處理url及寫入header,最後取得新的request handle與middleware

func (*Engine) DefaultConnection

func (eng *Engine) DefaultConnection() db.Connection

DefaultConnection return the default db connection. 回傳預設的Connection(interface)

func (*Engine) FindPluginByName

func (eng *Engine) FindPluginByName(name string) (plugins.Plugin, bool)

FindPluginByName find the register plugin by given name. 透過參數(name)找到符合的plugin

func (*Engine) HTML

func (eng *Engine) HTML(method, url string, fn types.GetPanelInfoFn, noAuth ...bool)

HTML inject the route and corresponding handler wrapped by the given function to the web framework. type GetPanelInfoFn func(ctx *context.Context) (Panel, error) 透過function將route以及相對應的處理程序加入Web框架 建立一個handler後設置context.Context增加handlers、處理url及寫入header,最後取得新的request handle與middleware

func (*Engine) HTMLFile

func (eng *Engine) HTMLFile(method, url, path string, data map[string]interface{}, noAuth ...bool)

HTMLFile inject the route and corresponding handler which returns the panel content of given html file path to the web framework. 將route以及相對應的處理程序加入Web框架(該程序回傳html文件的面板(panel)內容) 建立一個handler後設置context.Context增加handlers、處理url及寫入header,最後取得新的request handle與middleware

func (*Engine) HTMLFiles

func (eng *Engine) HTMLFiles(method, url string, data map[string]interface{}, files ...string)

HTMLFiles inject the route and corresponding handler which returns the panel content of given html files path to the web framework. 將route以及相對應的處理程序加入Web框架(該程序回傳html文件(多個文件)的面板(panel)內容),需身分驗證 設置context.Context增加handlers、處理url及寫入header,最後取得新的request handle與middleware

func (*Engine) HTMLFilesNoAuth

func (eng *Engine) HTMLFilesNoAuth(method, url string, data map[string]interface{}, files ...string)

HTMLFilesNoAuth inject the route and corresponding handler which returns the panel content of given html files path to the web framework without auth check. 將route以及相對應的處理程序加入Web框架(該程序回傳html文件(多個文件)的面板(panel)內容),無須身分驗證 設置context.Context增加handlers、處理url及寫入header,最後取得新的request handle與middleware

func (*Engine) InitDatabase

func (eng *Engine) InitDatabase() *Engine

InitDatabase initialize all database connection. 初始化所有資料庫連線(將driver加入Engine.Services)並啟動引擎

func (*Engine) MssqlConnection

func (eng *Engine) MssqlConnection() db.Connection

MssqlConnection return the mssql db connection of given driver. 取得匹配mssql的Service後回傳Connection(interface) Service(interface)也具有db.Connection(interface)型態,因為都具有Name方法

func (*Engine) MysqlConnection

func (eng *Engine) MysqlConnection() db.Connection

MysqlConnection return the mysql db connection of given driver. 取得匹配mysql的Service後回傳Connection(interface) Service(interface)也具有db.Connection(interface)型態,因為都具有Name方法

func (*Engine) PostgresqlConnection

func (eng *Engine) PostgresqlConnection() db.Connection

PostgresqlConnection return the postgresql db connection of given driver. 取得匹配postgresql的Service後回傳Connection(interface) Service(interface)也具有db.Connection(interface)型態,因為都具有Name方法

func (*Engine) ResolveConnection

func (eng *Engine) ResolveConnection(setter ConnectionSetter, driver string) *Engine

ResolveConnection resolve the specified driver connection. 解決特別driver連接

func (*Engine) ResolveMssqlConnection

func (eng *Engine) ResolveMssqlConnection(setter ConnectionSetter) *Engine

ResolveMssqlConnection resolve the mssql connection.

func (*Engine) ResolveMysqlConnection

func (eng *Engine) ResolveMysqlConnection(setter ConnectionSetter) *Engine

ResolveMysqlConnection resolve the mysql connection. 解決mysql連接

func (*Engine) ResolvePostgresqlConnection

func (eng *Engine) ResolvePostgresqlConnection(setter ConnectionSetter) *Engine

ResolvePostgresqlConnection resolve the postgres connection.

func (*Engine) ResolveSqliteConnection

func (eng *Engine) ResolveSqliteConnection(setter ConnectionSetter) *Engine

ResolveSqliteConnection resolve the sqlite connection.

func (*Engine) SetCaptcha

func (eng *Engine) SetCaptcha(captcha map[string]string) *Engine

SetCaptcha set the captcha config. 將參數captcha(驗證碼)設置至Admin.handler.captchaConfig(struct)

func (*Engine) SetCaptchaDriver

func (eng *Engine) SetCaptchaDriver(driver string) *Engine

SetCaptchaDriver set the captcha config with driver. SetCaptchaDriver將參數map[string]string{"driver": driver}(驗證碼)設置至Admin.handler.captchaConfig(struct)

func (*Engine) SqliteConnection

func (eng *Engine) SqliteConnection() db.Connection

SqliteConnection return the sqlite db connection of given driver. 取得匹配sqlite的Service後回傳Connection(interface) Service(interface)也具有db.Connection(interface)型態,因為都具有Name方法

func (*Engine) Use

func (eng *Engine) Use(router interface{}) error

Use enable the adapter. 尋找符合的plugin,接著設置context.Context(struct)與設置url與寫入header,取得新的request與middleware

func (*Engine) User

func (eng *Engine) User(ctx interface{}) (models.UserModel, bool)

User call the User method of engine adapter. 回傳Engine.Adapter(adapter.WebFrameWork(interface))的User方法,在adapter\gin\gin.go中 從ctx中取得cookie,接著利用cookie可以取得用戶角色、權限以及可用menu,最後得到UserModel,但UserModel.Base.Conn = nil(因ReleaseConn方法)

type Setter

type Setter func(*Engine)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL