settings: add export/import for api_access objects (#48751)
This commit is contained in:
parent
4653ad1b8b
commit
119288b7cd
|
@ -23,6 +23,7 @@ from wcs.qommon.ident.password_accounts import PasswordAccount
|
|||
from wcs.qommon.http_request import HTTPRequest
|
||||
from wcs.qommon.template import get_current_theme
|
||||
from wcs.admin.settings import UserFieldsFormDef
|
||||
from wcs.api_access import ApiAccess
|
||||
from wcs.categories import Category, CardDefCategory
|
||||
from wcs.data_sources import NamedDataSource
|
||||
from wcs.wscalls import NamedWsCall
|
||||
|
@ -644,6 +645,7 @@ def test_settings_export_import(pub, studio):
|
|||
CardDefCategory.wipe()
|
||||
NamedDataSource.wipe()
|
||||
NamedWsCall.wipe()
|
||||
ApiAccess.wipe()
|
||||
|
||||
wipe()
|
||||
create_superuser(pub)
|
||||
|
@ -692,6 +694,12 @@ def test_settings_export_import(pub, studio):
|
|||
export_to.parent = st1
|
||||
wf.store()
|
||||
|
||||
api_access = ApiAccess()
|
||||
api_access.name = 'Jhon'
|
||||
api_access.api_identifier = 'jhon'
|
||||
api_access.api_key = '1234'
|
||||
api_access.store()
|
||||
|
||||
resp = app.get('/backoffice/settings/export')
|
||||
resp = resp.form.submit('submit')
|
||||
assert resp.location.startswith('http://example.net/backoffice/settings/export?job=')
|
||||
|
@ -713,6 +721,7 @@ def test_settings_export_import(pub, studio):
|
|||
assert 'carddef_categories/1' in filelist
|
||||
assert 'datasources/1' in filelist
|
||||
assert 'wscalls/corge' in filelist
|
||||
assert 'apiaccess/1' in filelist
|
||||
for filename in filelist:
|
||||
assert '.indexes' not in filename
|
||||
|
||||
|
@ -737,6 +746,7 @@ def test_settings_export_import(pub, studio):
|
|||
assert FormDef.select()[0].url_name == 'foo'
|
||||
assert CardDef.count() == 1
|
||||
assert CardDef.select()[0].url_name == 'bar'
|
||||
assert ApiAccess.count() == 1
|
||||
|
||||
# check roles are found by name
|
||||
wipe()
|
||||
|
|
|
@ -879,6 +879,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
form.add(CheckboxWidget, 'datasources', title=_('Data sources'), value=True)
|
||||
form.add(CheckboxWidget, 'mail-templates', title=_('Mail templates'), value=True)
|
||||
form.add(CheckboxWidget, 'wscalls', title=_('Webservice calls'), value=True)
|
||||
form.add(CheckboxWidget, 'apiaccess', title=_('API access'), value=True)
|
||||
form.add_submit('submit', _('Submit'))
|
||||
form.add_submit('cancel', _('Cancel'))
|
||||
if form.get_submit() == 'cancel':
|
||||
|
@ -902,7 +903,8 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
c = BytesIO()
|
||||
z = zipfile.ZipFile(c, 'w')
|
||||
for d in self.dirs:
|
||||
if d not in ('roles', 'categories', 'carddef_categories', 'datasources', 'wscalls', 'mail-templates'):
|
||||
if d not in ('roles', 'categories', 'carddef_categories', 'datasources',
|
||||
'wscalls', 'mail-templates', 'apiaccess'):
|
||||
continue
|
||||
path = os.path.join(self.app_dir, d)
|
||||
if not os.path.exists(path):
|
||||
|
@ -951,7 +953,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
|
||||
dirs = []
|
||||
for w in ('formdefs', 'carddefs', 'workflows', 'roles', 'categories', 'carddef_categories',
|
||||
'datasources', 'wscalls', 'mail-templates', 'blockdefs'):
|
||||
'datasources', 'wscalls', 'mail-templates', 'blockdefs', 'apiaccess'):
|
||||
if form.get_widget(w) and form.get_widget(w).parse():
|
||||
dirs.append(w)
|
||||
if not dirs and not form.get_widget('settings').parse():
|
||||
|
@ -1053,6 +1055,8 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
r += htmltext('<li>%d %s</li>') % (results['mail-templates'], _('mail templates'))
|
||||
if results['wscalls']:
|
||||
r += htmltext('<li>%d %s</li>') % (results['wscalls'], _('webservice calls'))
|
||||
if results['apiaccess']:
|
||||
r += htmltext('<li>%d %s</li>') % (results['apiaccess'], _('API access'))
|
||||
r += htmltext('</ul>')
|
||||
else:
|
||||
r += htmltext('<p>%s %s</p>') % (_('Error:'), reason)
|
||||
|
|
|
@ -168,7 +168,7 @@ class WcsPublisher(StubWcsPublisher):
|
|||
z = zipfile.ZipFile(fd)
|
||||
results = {'formdefs': 0, 'carddefs': 0, 'workflows': 0, 'categories': 0, 'roles': 0,
|
||||
'settings': 0, 'datasources': 0, 'wscalls': 0, 'mail-templates': 0,
|
||||
'blockdefs': 0}
|
||||
'blockdefs': 0, 'apiaccess': 0}
|
||||
|
||||
def _decode_list(data):
|
||||
rv = []
|
||||
|
|
Loading…
Reference in New Issue