When using a reverse proxy, it can clean empty paths, always add @

This commit is contained in:
nemunaire 2021-01-09 19:56:20 +01:00
parent 8ee3fd7a27
commit 3c038bee88
8 changed files with 18 additions and 77 deletions

View File

@ -435,7 +435,9 @@ func deleteZoneService(opts *config.Options, req *RequestResources, body io.Read
}
}
err = req.Zone.EraseService(req.Ps.ByName("subdomain"), req.Domain.DomainName, serviceid, nil)
subdomain := strings.TrimSuffix(strings.TrimSuffix(strings.TrimSuffix(req.Ps.ByName("subdomain"), "."+req.Domain.DomainName), "@"), req.Domain.DomainName)
err = req.Zone.EraseService(subdomain, req.Domain.DomainName, serviceid, nil)
if err != nil {
return APIErrorResponse{
err: err,

View File

@ -60,7 +60,11 @@ export default {
},
deleteZoneService (domain, id, service) {
return Api().delete('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id) + '/' + encodeURIComponent(service._domain) + '/services/' + encodeURIComponent(service._id))
let subdomain = service._domain
if (subdomain === '') {
subdomain = '@'
}
return Api().delete('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id) + '/' + encodeURIComponent(subdomain) + '/services/' + encodeURIComponent(service._id))
},
updateZoneService (domain, id, subdomain, service) {
@ -68,6 +72,10 @@ export default {
},
getServiceRecords (domain, id, service) {
return Api().get('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id) + '/' + encodeURIComponent(service._domain) + '/services/' + encodeURIComponent(service._id) + '/records')
let subdomain = service._domain
if (subdomain === '') {
subdomain = '@'
}
return Api().get('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id) + '/' + encodeURIComponent(subdomain) + '/services/' + encodeURIComponent(service._id) + '/records')
}
}

View File

@ -85,7 +85,7 @@
</template>
<script>
import ZoneApi from '@/services/ZoneApi'
import ZoneApi from '@/api/zones'
export default {
name: 'HDomainService',

View File

@ -45,7 +45,7 @@
</template>
<script>
import ZoneApi from '@/services/ZoneApi'
import ZoneApi from '@/api/zones'
export default {
name: 'HEditableService',

View File

@ -128,7 +128,7 @@
import CustomForm from '@/mixins/customForm'
import ServicesApi from '@/services/ServicesApi'
import ValidateDomain from '@/mixins/validateDomain'
import ZoneApi from '@/services/ZoneApi'
import ZoneApi from '@/api/zones'
export default {
name: 'HModalAddService',

View File

@ -94,7 +94,7 @@
</template>
<script>
import ZoneApi from '@/services/ZoneApi'
import ZoneApi from '@/api/zones'
export default {
name: 'HSubdomainItem',

View File

@ -116,7 +116,7 @@
<script>
import ServiceSpecsApi from '@/services/ServiceSpecsApi'
import ValidateDomain from '@/mixins/validateDomain'
import ZoneApi from '@/services/ZoneApi'
import ZoneApi from '@/api/zones'
import { domainCompare } from '@/utils/domainCompare'
export default {

View File

@ -1,69 +0,0 @@
// Copyright or © or Copr. happyDNS (2020)
//
// contact@happydns.org
//
// This software is a computer program whose purpose is to provide a modern
// interface to interact with DNS systems.
//
// This software is governed by the CeCILL license under French law and abiding
// by the rules of distribution of free software. You can use, modify and/or
// redistribute the software under the terms of the CeCILL license as
// circulated by CEA, CNRS and INRIA at the following URL
// "http://www.cecill.info".
//
// As a counterpart to the access to the source code and rights to copy, modify
// and redistribute granted by the license, users are provided only with a
// limited warranty and the software's author, the holder of the economic
// rights, and the successive licensors have only limited liability.
//
// In this respect, the user's attention is drawn to the risks associated with
// loading, using, modifying and/or developing or reproducing the software by
// the user in light of its specific status of free software, that may mean
// that it is complicated to manipulate, and that also therefore means that it
// is reserved for developers and experienced professionals having in-depth
// computer knowledge. Users are therefore encouraged to load and test the
// software's suitability as regards their requirements in conditions enabling
// the security of their systems and/or data to be ensured and, more generally,
// to use and operate it in the same conditions as regards security.
//
// The fact that you are presently reading this means that you have had
// knowledge of the CeCILL license and that you accept its terms.
import Api from '@/services/Api'
export default {
getZone (domain, id) {
return Api().get('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id))
},
applyZone (domain, id) {
return Api().post('/api/domains/' + encodeURIComponent(domain) + '/apply_zone/' + encodeURIComponent(id))
},
diffZone (domain, id1, id2) {
return Api().post('/api/domains/' + encodeURIComponent(domain) + '/diff_zones/' + encodeURIComponent(id1) + '/' + encodeURIComponent(id2))
},
viewZone (domain, id) {
return Api().post('/api/domains/' + encodeURIComponent(domain) + '/view_zone/' + encodeURIComponent(id))
},
addZoneService (domain, id, subdomain, service) {
if (subdomain === '') {
subdomain = '@'
}
return Api().post('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id) + '/' + encodeURIComponent(subdomain) + '/services', service)
},
deleteZoneService (domain, id, service) {
return Api().delete('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id) + '/' + encodeURIComponent(service._domain) + '/services/' + encodeURIComponent(service._id))
},
updateZoneService (domain, id, subdomain, service) {
return Api().patch('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id), service)
},
getServiceRecords (domain, id, service) {
return Api().get('/api/domains/' + encodeURIComponent(domain) + '/zone/' + encodeURIComponent(id) + '/' + encodeURIComponent(service._domain) + '/services/' + encodeURIComponent(service._id) + '/records')
}
}