Moved v3 code from NginxProxyManager/nginx-proxy-manager-3 to NginxProxyManager/nginx-proxy-manager
This commit is contained in:
.dockerignore.gitignore.versionDEV-README.mdJenkinsfileREADME.md
backend
.editorconfig.eslintrc.json.gitignore.golangci.yml.nancy-ignorego.modgo.sumindex.js
.vscode
README.mdTaskfile.ymlapp.jscmd
server
config
db.jsdoc
embed
api_docs
api.swagger.json
main.gocomponents
CertificateAuthorityList.jsonCertificateAuthorityObject.jsonCertificateList.jsonCertificateObject.jsonConfigObject.jsonDNSProviderList.jsonDNSProviderObject.jsonDeletedItemResponse.jsonErrorObject.jsonFilterObject.jsonHealthObject.jsonHostList.jsonHostObject.jsonHostTemplateList.jsonHostTemplateObject.jsonSettingList.jsonSettingObject.jsonSortObject.jsonStreamList.jsonStreamObject.jsonTokenObject.jsonUserAuthObject.jsonUserList.jsonUserObject.json
main.gopaths
certificates-authorities
certificates
config
dns-providers
get.jsonhost-templates
hosts
schema
settings
streams
tokens
users
migrations
nginx
internal
access-list.jsaudit-log.js
knexfile.jsacme
api
context
filters
handler
auth.gocertificate_authorities.gocertificates.goconfig.godns_providers.gohealth.gohelpers.gohost_templates.gohosts.gonot_allowed.gonot_found.goschema.gosettings.gostreams.gotokens.gousers.go
http
middleware
access_control.goauth.goauth_cache.gobody_context.gocors.goenforce_setup.goexpansion.gofilters.gopretty_print.goschema.go
router.gorouter_test.goschema
certificates.gocommon.gocreate_certificate_authority.gocreate_dns_provider.gocreate_host.gocreate_host_template.gocreate_setting.gocreate_stream.gocreate_user.goget_token.goset_auth.goupdate_certificate_authority.goupdate_dns_provider.goupdate_host.goupdate_host_template.goupdate_setting.goupdate_stream.goupdate_user.go
server.gocache
certificate.jsconfig
database
dead-host.jsdnsproviders
common.godns_ad.godns_ali.godns_aws.godns_cf.godns_cloudns.godns_cx.godns_cyon.godns_dgon.godns_dnsimple.godns_dp.godns_duckdns.godns_dyn.godns_dynu.godns_freedns.godns_gandi_livedns.godns_gd.godns_he.godns_infoblox.godns_ispconfig.godns_linode_v4.godns_lua.godns_me.godns_namecom.godns_nsone.godns_pdns.godns_unoeuro.godns_vscale.godns_yandex.go
entity
auth
certificate
certificateauthority
dnsprovider
filters.gofilters_schema.gohost
hosttemplate
lists_query.gosetting
stream
user
errors
host.jsip_ranges.jsjwt
logger
model
nginx.jsnginx
proxy-host.jsredirection-host.jsreport.jssetting.jsstate
stream.jstoken.jstypes
user.jsutil
validator
worker
lib
access.js
logger.jsmigrate.jsaccess
access_lists-create.jsonaccess_lists-delete.jsonaccess_lists-get.jsonaccess_lists-list.jsonaccess_lists-update.jsonauditlog-list.jsoncertificates-create.jsoncertificates-delete.jsoncertificates-get.jsoncertificates-list.jsoncertificates-update.jsondead_hosts-create.jsondead_hosts-delete.jsondead_hosts-get.jsondead_hosts-list.jsondead_hosts-update.jsonpermissions.jsonproxy_hosts-create.jsonproxy_hosts-delete.jsonproxy_hosts-get.jsonproxy_hosts-list.jsonproxy_hosts-update.jsonredirection_hosts-create.jsonredirection_hosts-delete.jsonredirection_hosts-get.jsonredirection_hosts-list.jsonredirection_hosts-update.jsonreports-hosts.jsonroles.jsonsettings-get.jsonsettings-list.jsonsettings-update.jsonstreams-create.jsonstreams-delete.jsonstreams-get.jsonstreams-list.jsonstreams-update.jsonusers-create.jsonusers-delete.jsonusers-get.jsonusers-list.jsonusers-loginas.jsonusers-password.jsonusers-permissions.jsonusers-update.json
error.jsexpress
helpers.jsmigrate_template.jsutils.jsvalidator
migrations
20180618015850_initial.js20180929054513_websockets.js20181019052346_forward_host.js20181113041458_http2_support.js20181213013211_forward_scheme.js20190104035154_disabled.js20190215115310_customlocations.js20190218060101_hsts.js20190227065017_settings.js20200410143839_access_list_client.js20200410143840_access_list_client_fix.js20201014143841_pass_auth.js20210210154702_redirection_scheme.js20210210154703_redirection_status_code.js20210423103500_stream_domain.js20211108145214_regenerate_default_host.js
models
access_list.jsaccess_list_auth.jsaccess_list_client.jsaudit-log.jsauth.jscertificate.jsdead_host.jsnow_helper.jsproxy_host.jsredirection_host.jssetting.jsstream.jstoken.jsuser.jsuser_permission.js
nodemon.jsonpackage.jsonroutes
api
schema
definitions.json
endpoints
access-lists.jsoncertificates.jsondead-hosts.jsonproxy-hosts.jsonredirection-hosts.jsonsettings.jsonstreams.jsontokens.jsonusers.json
examples.jsonindex.jsonscripts
setup.jstemplates
_assets.conf_certificates.conf_exploits.conf_forced_ssl.conf_header_comment.conf_hsts.conf_listen.conf_location.confdead_host.confdefault.confip_ranges.confletsencrypt-request.confproxy_host.confredirection_host.confstream.conf
yarn.lockdocker
Dockerfile
dev
docker-compose.ci.ymldocker-compose.dev.ymlrootfs
bin
etc
cont-init.d
letsencrypt.inilogrotate.d
nginx
conf.d
default.confdev.conf
nginx.confinclude
.gitignoreacme-challenge.confassets.confblock-exploits.confforce-ssl.confip_ranges.confletsencrypt-acme-challenge.confproxy.confresolvers.confssl-ciphers.conf
production.confservices.d
root
var
www
html
docs
frontend
.babelrc.env.development.eslintrc.gitignore.prettierrcREADME.mdcheck-locales.jspackage.json
fonts
feather
globalSetup.jssource-sans-pro
source-sans-pro-v14-latin-ext_latin-700.woffsource-sans-pro-v14-latin-ext_latin-700.woff2source-sans-pro-v14-latin-ext_latin-700italic.woffsource-sans-pro-v14-latin-ext_latin-700italic.woff2source-sans-pro-v14-latin-ext_latin-italic.woffsource-sans-pro-v14-latin-ext_latin-italic.woff2source-sans-pro-v14-latin-ext_latin-regular.woffsource-sans-pro-v14-latin-ext_latin-regular.woff2
html
imagesjest.eslint.jsjs
app
api.jsrouter.js
audit-log
cache.jscontroller.jsdashboard
empty
error
help
i18n.jsmain.jsnginx
access
certificates-list-item.ejscertificates
dead
proxy
access-list-item.ejsdelete.ejsdelete.jsform.ejsform.js
list
location-item.ejslocation.jsmain.ejsmain.jsredirection
stream
settings
tokens.jsui
user
users
i18n
index.jslib
login.jslogin
models
public
images
default-avatar.jpg
index.htmlfavicon
android-chrome-192x192.pngandroid-chrome-512x512.pngapple-touch-icon.pngbrowserconfig.xmlfavicon-16x16.pngfavicon-32x32.pngfavicon.icomstile-150x150.pngsafari-pinned-tab.svgsite.webmanifest
logo-256.pnglogo-bold-horizontal-grey.svglogo-no-text.svglogo-text-horizontal-grey.pnglogo-text-vertical-grey.pngscss
src
App.test.tsxApp.tsxRouter.tsxreact-app-env.d.ts
tsconfig.jsonwebpack.config.jsyarn.lockapi
npm
base.tscreateCertificateAuthority.tscreateDNSProvider.tscreateUser.tsgetCertificateAuthorities.tsgetCertificateAuthority.tsgetCertificates.tsgetDNSProvider.tsgetDNSProviders.tsgetDNSProvidersAcmesh.tsgetHealth.tsgetHostTemplates.tsgetHosts.tsgetSettings.tsgetToken.tsgetUser.tsgetUsers.tshelpers.tsindex.tsmodels.tsrefreshToken.tsresponseTypes.tssetAuth.tssetCertificateAuthority.tssetDNSProvider.tssetUser.ts
components
EmptyList.tsx
Flag
Footer.tsxHelpDrawer
Loader
Loading.tsxLocalePicker.tsxNavigation
Permissions
PrettyButton.tsxSiteWrapper.tsxSpinnerPage.tsxTable
Formatters.tsxRowActionsMenu.tsxTableHelpers.tsTableLayout.tsxTextFilter.tsxindex.tsreact-table-config.d.ts
ThemeSwitcher.tsxUnhealthy.tsxindex.tscontext
declarations.d.tsfonts
source-sans-pro
source-sans-pro-v14-latin-700.woffsource-sans-pro-v14-latin-700.woff2source-sans-pro-v14-latin-700italic.woffsource-sans-pro-v14-latin-700italic.woff2source-sans-pro-v14-latin-italic.woffsource-sans-pro-v14-latin-italic.woff2source-sans-pro-v14-latin-regular.woffsource-sans-pro-v14-latin-regular.woff2
hooks
index.tsuseCertificateAuthorities.tsuseCertificateAuthority.tsuseCertificates.tsuseDNSProvider.tsuseDNSProviders.tsuseDNSProvidersAcmesh.tsuseHealth.tsuseHostTemplates.tsuseHosts.tsuseSettings.tsuseUser.tsuseUsers.ts
img
index.scssindex.tsxlocale
modals
CertificateAuthorityCreateModal.tsxCertificateAuthorityEditModal.tsxChangePasswordModal.tsxDNSProviderCreateModal.tsxProfileModal.tsxSetPasswordModal.tsxUserCreateModal.tsxUserEditModal.tsxindex.ts
modules
pages
AccessLists
AuditLog
CertificateAuthorities
Certificates
DNSProviders
Dashboard
HostTemplates
Hosts
Login
Settings
Setup
Users
styles
theme
global
scripts
.common.shbuildx
ci
docs-buildfrontend-buildfrontend-lintgo-multiarch-wrapperinstall-s6sqlitestart-devtest-devwait-healthytest
127
backend/internal/entity/setting/methods.go
Normal file
127
backend/internal/entity/setting/methods.go
Normal file
@ -0,0 +1,127 @@
|
||||
package setting
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
goerrors "errors"
|
||||
"fmt"
|
||||
|
||||
"npm/internal/database"
|
||||
"npm/internal/entity"
|
||||
"npm/internal/errors"
|
||||
"npm/internal/logger"
|
||||
"npm/internal/model"
|
||||
)
|
||||
|
||||
// GetByID finds a setting by ID
|
||||
func GetByID(id int) (Model, error) {
|
||||
var m Model
|
||||
err := m.LoadByID(id)
|
||||
return m, err
|
||||
}
|
||||
|
||||
// GetByName finds a setting by name
|
||||
func GetByName(name string) (Model, error) {
|
||||
var m Model
|
||||
err := m.LoadByName(name)
|
||||
return m, err
|
||||
}
|
||||
|
||||
// Create will Create a Setting from this model
|
||||
func Create(setting *Model) (int, error) {
|
||||
if setting.ID != 0 {
|
||||
return 0, goerrors.New("Cannot create setting when model already has an ID")
|
||||
}
|
||||
|
||||
setting.Touch(true)
|
||||
|
||||
db := database.GetInstance()
|
||||
// nolint: gosec
|
||||
result, err := db.NamedExec(`INSERT INTO `+fmt.Sprintf("`%s`", tableName)+` (
|
||||
created_on,
|
||||
modified_on,
|
||||
name,
|
||||
value
|
||||
) VALUES (
|
||||
:created_on,
|
||||
:modified_on,
|
||||
:name,
|
||||
:value
|
||||
)`, setting)
|
||||
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
last, lastErr := result.LastInsertId()
|
||||
if lastErr != nil {
|
||||
return 0, lastErr
|
||||
}
|
||||
|
||||
return int(last), nil
|
||||
}
|
||||
|
||||
// Update will Update a Setting from this model
|
||||
func Update(setting *Model) error {
|
||||
if setting.ID == 0 {
|
||||
return goerrors.New("Cannot update setting when model doesn't have an ID")
|
||||
}
|
||||
|
||||
setting.Touch(false)
|
||||
|
||||
db := database.GetInstance()
|
||||
// nolint: gosec
|
||||
_, err := db.NamedExec(`UPDATE `+fmt.Sprintf("`%s`", tableName)+` SET
|
||||
created_on = :created_on,
|
||||
modified_on = :modified_on,
|
||||
name = :name,
|
||||
value = :value
|
||||
WHERE id = :id`, setting)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// List will return a list of settings
|
||||
func List(pageInfo model.PageInfo, filters []model.Filter) (ListResponse, error) {
|
||||
var result ListResponse
|
||||
var exampleModel Model
|
||||
|
||||
defaultSort := model.Sort{
|
||||
Field: "name",
|
||||
Direction: "ASC",
|
||||
}
|
||||
|
||||
db := database.GetInstance()
|
||||
if db == nil {
|
||||
return result, errors.ErrDatabaseUnavailable
|
||||
}
|
||||
|
||||
// Get count of items in this search
|
||||
query, params := entity.ListQueryBuilder(exampleModel, tableName, &pageInfo, defaultSort, filters, getFilterMapFunctions(), true)
|
||||
countRow := db.QueryRowx(query, params...)
|
||||
var totalRows int
|
||||
queryErr := countRow.Scan(&totalRows)
|
||||
if queryErr != nil && queryErr != sql.ErrNoRows {
|
||||
logger.Debug("%+v", queryErr)
|
||||
return result, queryErr
|
||||
}
|
||||
|
||||
// Get rows
|
||||
var items []Model
|
||||
query, params = entity.ListQueryBuilder(exampleModel, tableName, &pageInfo, defaultSort, filters, getFilterMapFunctions(), false)
|
||||
err := db.Select(&items, query, params...)
|
||||
if err != nil {
|
||||
logger.Debug("%+v", err)
|
||||
return result, err
|
||||
}
|
||||
|
||||
result = ListResponse{
|
||||
Items: items,
|
||||
Total: totalRows,
|
||||
Limit: pageInfo.Limit,
|
||||
Offset: pageInfo.Offset,
|
||||
Sort: pageInfo.Sort,
|
||||
Filter: filters,
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
Reference in New Issue
Block a user