Added fix in api

This commit is contained in:
Antonio de la Rosa 2025-05-23 01:36:31 +02:00
parent 56f4361929
commit 802fccc162
5 changed files with 54 additions and 10 deletions

View file

@ -18,7 +18,7 @@ from modules.pastafari2.models.tasks import Task, LogTask
from modules.pastafari2.libraries.configtask import config_task
from modules.pastafari2.models.pastafari2 import ServerGroup, ServerDbTask, UpdateServerScripts
from paramecio2.libraries.config_admin import config_admin
from modules.pastafari2.settings.config_admin import pastafari_admin_i18n, pastafari_admin_i18n, pastafari_settings_i18n, pastafari_servers_i18n, pastafari_groups_i18n, pastafari_tasks_log_i18n, num_element_admin
#from modules.pastafari2.settings.config_admin import pastafari_admin_i18n, pastafari_admin_i18n, pastafari_settings_i18n, pastafari_servers_i18n, pastafari_groups_i18n, pastafari_tasks_log_i18n, num_element_admin
from pathlib import Path
import paramiko

21
api.py
View file

@ -114,7 +114,8 @@ groupdb=ServerGroup(None)
@pastafari_app.get('/api/v1/get_groups')
@db
def get_groups(tag='groups') -> ResponseGroups:
@auth_plugin
def get_groups(tag='groups', bearer=True) -> ResponseGroups:
db=g.connection
@ -128,7 +129,8 @@ def get_groups(tag='groups') -> ResponseGroups:
@pastafari_app.post('/api/v1/add_group')
@db
def add_group(post: Annotated[ServerGroups, 'Add group to the cuchulucp system'] = ServerGroups, tag='groups'):
@auth_plugin
def add_group(post: Annotated[ServerGroups, 'Add group to the cuchulucp system'] = ServerGroups, tag='groups', bearer=True):
db=g.connection
@ -151,7 +153,8 @@ def add_group(post: Annotated[ServerGroups, 'Add group to the cuchulucp system']
@pastafari_app.post('/api/v1/add_server')
@db
def add_server(post: Annotated[Server, 'Add server to the cuchulucp system'] = Server, tag='servers'):
@auth_plugin
def add_server(post: Annotated[Server, 'Add server to the cuchulucp system'] = Server, tag='servers', bearer=True):
db=g.connection
@ -232,7 +235,8 @@ def add_server(post: Annotated[Server, 'Add server to the cuchulucp system'] = S
task_id=0
path_task='modules.cuchulucp.tasks.system.task'
#path_task='modules.cuchulucp.tasks.system.task'
path_task='modules.pastafari2.tasks.system.task'
if not task.run_task(ip, path_task, 'Add new server', 'add_new_server', 'Task for add a new server', user=server_username, password=server_password, where_sql_server='', url='', data=data, send_task=True, ssh_port=ssh_port):
@ -257,7 +261,8 @@ taskdb=TaskDbModel(None)
@pastafari_app.post('/api/v1/task')
@db
def make_task(post: Annotated[TaskExec, 'Task to execute'] = TaskExec, tag='tasks'):
@auth_plugin
def make_task(post: Annotated[TaskExec, 'Task to execute'] = TaskExec, tag='tasks', bearer=True):
db=g.connection
@ -346,7 +351,8 @@ def make_task(post: Annotated[TaskExec, 'Task to execute'] = TaskExec, tag='task
@pastafari_app.get('/api/v1/get_progress_task/<int:task_id>/<int:position>')
@db
def get_progress_task(task_id, position=0, tag='tasks') -> ResponseLog:
@auth_plugin
def get_progress_task(task_id, position=0, tag='tasks', bearer=True) -> ResponseLog:
db=g.connection
@ -408,7 +414,8 @@ def get_progress_task(task_id, position=0, tag='tasks') -> ResponseLog:
@pastafari_app.post('/api/v1/add_task_db')
@db
def add_task_db(post: Annotated[TaskDb, 'Add a new task to db'] = TaskDb, tag='tasks') -> StandardResponse:
@auth_plugin
def add_task_db(post: Annotated[TaskDb, 'Add a new task to db'] = TaskDb, tag='tasks', bearer=True) -> StandardResponse:
db=g.connection

View file

@ -17,7 +17,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
from flask import g, session, redirect, url_for
from flask import g, session, redirect, url_for, request, abort
from functools import wraps
from paramecio2.libraries.db.webmodel import WebModel
@ -46,7 +46,8 @@ def auth_plugin(f):
#print(request.headers['Authorization'])
bearer=request.headers['Authorization'].replace('Bearer', '').strip()
db=kwargs['db']
#db=kwargs['db']
db=g.connection
num_token=0

View file

@ -77,6 +77,12 @@ class ConfigTask:
self.api_key=''
self.ssh_directory=os.path.expanduser('~')+'/.ssh'
self.ssh_private_key=self.ssh_directory+'/id_rsa'
self.ssh_private_key_password=''
self.ssh_public_key=self.ssh_private_key+'.pub'
# Class for global configuration

View file

@ -14,6 +14,7 @@ from paramecio2.libraries.urls import make_media_url
from paramecio2.libraries import datetime
from paramecio2.modules.admin.models.admin import UserAdmin
from modules.pastafari2.models.tasks import LonelyIpField
from paramecio2.libraries.db.extrafields.passwordfield import PasswordField
#from modules.monit.models.monit import Server
class ServerGroup(WebModel):
@ -86,3 +87,32 @@ class ServerScripts(WebModel):
self.register(corefields.CharField('question8'))
self.register(corefields.CharField('question9'))
class UserPermissions(WebModel):
def __init__(self, connection=None):
super().__init__(connection)
self.register(corefields.ForeignKeyField('user_id', UserAdmin(connection), 11, True, 'id', 'group', select_fields=[]))
self.register(JsonValueField('permissions', corefields.BooleanField('permissions')))
self.register(PasswordField('token_auth'))
class ServerPermissions(WebModel):
def __init__(self, connection=None):
super().__init__(connection)
self.register(corefields.ForeignKeyField('user_id', UserAdmin(connection), 11, True, 'id', 'group', select_fields=[]))
self.register(corefields.ForeignKeyField('server_id', Server(connection), 11, False, 'id', 'group', select_fields=[]))
self.register(JsonValueField('permissions', corefields.BooleanField('permissions')))
self.register(PasswordField('token_auth'))
class UserToken(WebModel):
def __init__(self, connection):
super().__init__(connection)
self.register(corefields.CharField('token', 4096), True)
self.register(corefields.ForeignKeyField('user_id', UserAdmin(connection), 11, True, 'id', 'group', select_fields=[]))
self.register(DateTimeField('last_login'))