Mesclagem de arquivos
This commit is contained in:
parent
3d6821682b
commit
b1a4e48f4a
2
app.py
2
app.py
@ -20,6 +20,7 @@ from routes.service import service_bp
|
|||||||
from routes.service_roles import service_role_bp
|
from routes.service_roles import service_role_bp
|
||||||
from routes.cameras import camera_bp
|
from routes.cameras import camera_bp
|
||||||
from routes.ambiente import ambiente_bp
|
from routes.ambiente import ambiente_bp
|
||||||
|
from routes.service_instance import service_instance_bp
|
||||||
from routes.reports import employee_bp
|
from routes.reports import employee_bp
|
||||||
import logging
|
import logging
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
@ -119,6 +120,7 @@ def create_app():
|
|||||||
app.register_blueprint(user_service_role_bp)
|
app.register_blueprint(user_service_role_bp)
|
||||||
app.register_blueprint(camera_bp)
|
app.register_blueprint(camera_bp)
|
||||||
app.register_blueprint(ambiente_bp)
|
app.register_blueprint(ambiente_bp)
|
||||||
|
app.register_blueprint(service_instance_bp)
|
||||||
|
|
||||||
# Testa a conexão com o banco de dados
|
# Testa a conexão com o banco de dados
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
|
|||||||
@ -31,6 +31,10 @@ parameters:
|
|||||||
type: integer
|
type: integer
|
||||||
description: ID do serviço associado
|
description: ID do serviço associado
|
||||||
example: 1
|
example: 1
|
||||||
|
service_instance_id:
|
||||||
|
type: integer
|
||||||
|
description: ID da empresa associada
|
||||||
|
example: 1
|
||||||
ambiente_id:
|
ambiente_id:
|
||||||
type: integer
|
type: integer
|
||||||
description: ID do serviço associado
|
description: ID do serviço associado
|
||||||
@ -65,6 +69,9 @@ responses:
|
|||||||
service_id:
|
service_id:
|
||||||
type: integer
|
type: integer
|
||||||
description: ID do serviço associado
|
description: ID do serviço associado
|
||||||
|
service_instance_id:
|
||||||
|
type: integer
|
||||||
|
description: ID da empresa associada
|
||||||
ambiente_id:
|
ambiente_id:
|
||||||
type: integer
|
type: integer
|
||||||
description: ID do ambiente_id
|
description: ID do ambiente_id
|
||||||
@ -81,6 +88,7 @@ responses:
|
|||||||
service_id: 3
|
service_id: 3
|
||||||
ambiente_id: 1
|
ambiente_id: 1
|
||||||
service_role_id: 5
|
service_role_id: 5
|
||||||
|
service_instance_id: 1
|
||||||
400:
|
400:
|
||||||
description: Requisição inválida (dados incorretos ou ausentes)
|
description: Requisição inválida (dados incorretos ou ausentes)
|
||||||
content:
|
content:
|
||||||
|
|||||||
@ -34,6 +34,9 @@ responses:
|
|||||||
service_role_id:
|
service_role_id:
|
||||||
type: "integer"
|
type: "integer"
|
||||||
example: 1
|
example: 1
|
||||||
|
service_instance_id:
|
||||||
|
type: "integer"
|
||||||
|
example: 1
|
||||||
404:
|
404:
|
||||||
description: "Função de serviço não encontrada"
|
description: "Função de serviço não encontrada"
|
||||||
schema:
|
schema:
|
||||||
|
|||||||
@ -83,6 +83,7 @@ responses:
|
|||||||
service_id: 1
|
service_id: 1
|
||||||
ambiente_id: 1
|
ambiente_id: 1
|
||||||
service_role_id: 1
|
service_role_id: 1
|
||||||
|
service_instance_id: 1
|
||||||
|
|
||||||
- id: 2
|
- id: 2
|
||||||
name: "camera 1"
|
name: "camera 1"
|
||||||
@ -92,6 +93,7 @@ responses:
|
|||||||
service_id: 1
|
service_id: 1
|
||||||
ambiente_id: 1
|
ambiente_id: 1
|
||||||
service_role_id: 1
|
service_role_id: 1
|
||||||
|
service_instance_id: 1
|
||||||
401:
|
401:
|
||||||
description: Token inválido ou ausente
|
description: Token inválido ou ausente
|
||||||
content:
|
content:
|
||||||
|
|||||||
@ -32,6 +32,12 @@ parameters:
|
|||||||
schema:
|
schema:
|
||||||
type: "string"
|
type: "string"
|
||||||
description: "url da camera."
|
description: "url da camera."
|
||||||
|
- name: "service_instance_id"
|
||||||
|
in: "body"
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: "integer"
|
||||||
|
description: "empresa associada a camera."
|
||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
description: "Camera atualizada com sucesso"
|
description: "Camera atualizada com sucesso"
|
||||||
|
|||||||
99
docs/service_instance/get.yml
Normal file
99
docs/service_instance/get.yml
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
tags:
|
||||||
|
- Service Instance
|
||||||
|
summary: Lista todas as Empresas.
|
||||||
|
security:
|
||||||
|
- bearerAuth: []
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: page
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 1
|
||||||
|
description: Número da página a ser retornada
|
||||||
|
status: Status da empresa
|
||||||
|
- in: query
|
||||||
|
name: per_page
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 10
|
||||||
|
description: Número de funções de serviço por página
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: Lista de cameras com informações de paginação
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
total:
|
||||||
|
type: integer
|
||||||
|
description: Número total de funções de serviço
|
||||||
|
pages:
|
||||||
|
type: integer
|
||||||
|
description: Número total de páginas
|
||||||
|
current_page:
|
||||||
|
type: integer
|
||||||
|
description: Página atual
|
||||||
|
per_page:
|
||||||
|
type: integer
|
||||||
|
description: Número de itens por página
|
||||||
|
roles:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: integer
|
||||||
|
description: ID da empresa
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: Nome da empresa
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
description: Descrição da empresa
|
||||||
|
service_id:
|
||||||
|
type: integer
|
||||||
|
description: ID do serviço associado
|
||||||
|
|
||||||
|
examples:
|
||||||
|
application/json:
|
||||||
|
total: 2
|
||||||
|
pages: 1
|
||||||
|
current_page: 1
|
||||||
|
per_page: 10
|
||||||
|
roles:
|
||||||
|
- id: 1
|
||||||
|
name: "Farmacia"
|
||||||
|
description: "farmacia 1"
|
||||||
|
service_id: 1
|
||||||
|
|
||||||
|
- id: 2
|
||||||
|
name: "Farmacia 2"
|
||||||
|
description: "Farmacia 2"
|
||||||
|
service_id: 1
|
||||||
|
401:
|
||||||
|
description: Token inválido ou ausente
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
error:
|
||||||
|
type: string
|
||||||
|
examples:
|
||||||
|
application/json:
|
||||||
|
error: "Token inválido ou ausente"
|
||||||
|
404:
|
||||||
|
description: Nenhuma camera encontrada
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
error:
|
||||||
|
type: string
|
||||||
|
examples:
|
||||||
|
application/json:
|
||||||
|
error: "Nenhuma camera encontrada"
|
||||||
@ -6,6 +6,7 @@ class Cameras(db.Model):
|
|||||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||||
service_id = db.Column(db.Integer, db.ForeignKey('service.id'), nullable=False)
|
service_id = db.Column(db.Integer, db.ForeignKey('service.id'), nullable=False)
|
||||||
ambiente_id = db.Column(db.Integer, db.ForeignKey('ambiente.id'), nullable=False)
|
ambiente_id = db.Column(db.Integer, db.ForeignKey('ambiente.id'), nullable=False)
|
||||||
|
service_instance_id = db.Column(db.Integer, db.ForeignKey('service_instance.id'), nullable=False)
|
||||||
service_role_id = db.Column(db.Integer, db.ForeignKey('service_roles.id'), nullable=False)
|
service_role_id = db.Column(db.Integer, db.ForeignKey('service_roles.id'), nullable=False)
|
||||||
name = db.Column(db.String(255), nullable=False)
|
name = db.Column(db.String(255), nullable=False)
|
||||||
description = db.Column(db.Text, nullable=True)
|
description = db.Column(db.Text, nullable=True)
|
||||||
|
|||||||
@ -20,6 +20,7 @@ def create_camera():
|
|||||||
status = data.get('status')
|
status = data.get('status')
|
||||||
description = data.get('description')
|
description = data.get('description')
|
||||||
url = data.get('url')
|
url = data.get('url')
|
||||||
|
service_instance_id = data.get('service_instance_id')
|
||||||
|
|
||||||
# Verifica se o serviço existe
|
# Verifica se o serviço existe
|
||||||
service = Service.query.get(service_id)
|
service = Service.query.get(service_id)
|
||||||
@ -40,6 +41,7 @@ def create_camera():
|
|||||||
description=description,
|
description=description,
|
||||||
status=status,
|
status=status,
|
||||||
url=url,
|
url=url,
|
||||||
|
service_instance_id = service_instance_id,
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -70,6 +72,7 @@ def list_service_roles():
|
|||||||
'service_role_id': camera.service_role_id,
|
'service_role_id': camera.service_role_id,
|
||||||
'status': camera.status,
|
'status': camera.status,
|
||||||
'url':camera.url,
|
'url':camera.url,
|
||||||
|
'service_instance_id':camera.service_instance_id
|
||||||
} for camera in cameras
|
} for camera in cameras
|
||||||
],
|
],
|
||||||
'total': pagination.total,
|
'total': pagination.total,
|
||||||
@ -94,6 +97,7 @@ def get_service_role(camera_id):
|
|||||||
'service_role_id': camera.service_role_id,
|
'service_role_id': camera.service_role_id,
|
||||||
'status': camera.status,
|
'status': camera.status,
|
||||||
'url':camera.url,
|
'url':camera.url,
|
||||||
|
'service_instance_id' : camera.service_instance_id
|
||||||
}), 200
|
}), 200
|
||||||
|
|
||||||
@camera_bp.route('/<int:camera_id>', methods=['PUT'])
|
@camera_bp.route('/<int:camera_id>', methods=['PUT'])
|
||||||
@ -106,6 +110,7 @@ def update_camera(camera_id):
|
|||||||
status=data.get('status')
|
status=data.get('status')
|
||||||
url = data.get('url')
|
url = data.get('url')
|
||||||
ambiente_id = data.get('ambiente_id')
|
ambiente_id = data.get('ambiente_id')
|
||||||
|
service_instance_id = data.get('service_instance_id')
|
||||||
|
|
||||||
camera = Cameras.query.get(camera_id)
|
camera = Cameras.query.get(camera_id)
|
||||||
if not camera:
|
if not camera:
|
||||||
@ -122,6 +127,8 @@ def update_camera(camera_id):
|
|||||||
camera.url = url
|
camera.url = url
|
||||||
if ambiente_id :
|
if ambiente_id :
|
||||||
camera.ambiente_id = ambiente_id
|
camera.ambiente_id = ambiente_id
|
||||||
|
if service_instance_id:
|
||||||
|
camera.service_instance_id = service_instance_id
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
|||||||
31
routes/service_instance.py
Normal file
31
routes/service_instance.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
from flask import Blueprint, request, jsonify
|
||||||
|
from flask_jwt_extended import jwt_required
|
||||||
|
from flasgger.utils import swag_from
|
||||||
|
from models.service_instance import ServiceInstance
|
||||||
|
from models.service import Service
|
||||||
|
|
||||||
|
service_instance_bp = Blueprint('service_instance', __name__, url_prefix='/service_instance')
|
||||||
|
|
||||||
|
@service_instance_bp.route('/', methods=['GET'])
|
||||||
|
@jwt_required()
|
||||||
|
@swag_from('../docs/service_instance/list.yml')
|
||||||
|
def list_ambiente():
|
||||||
|
page = request.args.get('page', 1, type=int)
|
||||||
|
per_page = request.args.get('per_page', 10, type=int)
|
||||||
|
|
||||||
|
pagination = ServiceInstance.query.paginate(page=page, per_page=per_page, error_out=False)
|
||||||
|
service_instances = pagination.items
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'service_instance': [
|
||||||
|
{
|
||||||
|
'id': service_instance.id,
|
||||||
|
'name': service_instance.name,
|
||||||
|
'description': service_instance.description,
|
||||||
|
'service_id': service_instance.service_id
|
||||||
|
} for service_instance in service_instances
|
||||||
|
],
|
||||||
|
'total': pagination.total,
|
||||||
|
'page': pagination.page,
|
||||||
|
'per_page': pagination.per_page
|
||||||
|
}), 200
|
||||||
@ -5,18 +5,20 @@ def seed_ambiente():
|
|||||||
ambientes = [
|
ambientes = [
|
||||||
# Ambiente 1
|
# Ambiente 1
|
||||||
{
|
{
|
||||||
"service_id": 4,
|
"service_id": 1,
|
||||||
"service_role_id":4,
|
"service_role_id":4,
|
||||||
"name": "Entrada",
|
"name": "Entrada",
|
||||||
"description": " Hall de Entrada, apresenta 3 cameras."
|
"description": " Hall de Entrada, apresenta 3 cameras.",
|
||||||
|
"status":"Active"
|
||||||
},
|
},
|
||||||
|
|
||||||
# Ambiente 2
|
# Ambiente 2
|
||||||
{
|
{
|
||||||
"service_id": 4,
|
"service_id": 1,
|
||||||
"service_role_id":4,
|
"service_role_id":4,
|
||||||
"name": "Estoque",
|
"name": "Estoque",
|
||||||
"description": "Estoque, apresenta 3 cameras."
|
"description": "Estoque, apresenta 3 cameras.",
|
||||||
|
"status":"Active"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
for ambiente_data in ambientes:
|
for ambiente_data in ambientes:
|
||||||
@ -34,7 +36,9 @@ def seed_ambiente():
|
|||||||
name=ambiente_data["name"],
|
name=ambiente_data["name"],
|
||||||
description=ambiente_data["description"]
|
description=ambiente_data["description"]
|
||||||
)
|
)
|
||||||
|
print("antes do banco")
|
||||||
db.session.add(ambiente)
|
db.session.add(ambiente)
|
||||||
|
print("adiconei no banco")
|
||||||
|
|
||||||
# Commit a transação para salvar os dados no banco
|
# Commit a transação para salvar os dados no banco
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|||||||
@ -10,6 +10,7 @@ def seed_cameras():
|
|||||||
"service_role_id":3,
|
"service_role_id":3,
|
||||||
"name": "Camera Hall de Entrada",
|
"name": "Camera Hall de Entrada",
|
||||||
"description": "Camera 1 Hall de entrada, modelo XXX.",
|
"description": "Camera 1 Hall de entrada, modelo XXX.",
|
||||||
|
"url":"http://testecameraentrada",
|
||||||
"status":"Active"
|
"status":"Active"
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -20,6 +21,7 @@ def seed_cameras():
|
|||||||
"service_role_id":3,
|
"service_role_id":3,
|
||||||
"name": "Camera Estoque",
|
"name": "Camera Estoque",
|
||||||
"description": "Camera 1 Estoque, modelo XXX.",
|
"description": "Camera 1 Estoque, modelo XXX.",
|
||||||
|
"url":"http://testecamerestoque",
|
||||||
"status":"Active"
|
"status":"Active"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
35
seeds/delet.py
Normal file
35
seeds/delet.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import sys
|
||||||
|
import os
|
||||||
|
from flask import Flask
|
||||||
|
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# Carrega variáveis do .env
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
# Adiciona o diretório raiz do projeto ao sys.path
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||||
|
from extensions import db
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
# Configuração do banco de dados usando o .env
|
||||||
|
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL')
|
||||||
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||||
|
|
||||||
|
# Inicializa o db
|
||||||
|
db.init_app(app)
|
||||||
|
|
||||||
|
def clear_all_tables():
|
||||||
|
try:
|
||||||
|
with app.app_context():
|
||||||
|
meta = db.metadata
|
||||||
|
for table in reversed(meta.sorted_tables):
|
||||||
|
print(f"Apagando dados da tabela: {table.name}")
|
||||||
|
# Comando para excluir os dados
|
||||||
|
result = db.session.execute(table.delete())
|
||||||
|
db.session.commit()
|
||||||
|
print(f"✅ Dados apagados da tabela {table.name}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Erro ao apagar dados: {e}")
|
||||||
|
|
||||||
|
clear_all_tables()
|
||||||
@ -30,9 +30,10 @@ def run_all_seeds():
|
|||||||
seed_contacts()
|
seed_contacts()
|
||||||
seed_user_service_roles()
|
seed_user_service_roles()
|
||||||
seed_licenses()
|
seed_licenses()
|
||||||
seed_cameras()
|
|
||||||
seed_ambiente()
|
seed_ambiente()
|
||||||
reports_seed()
|
reports_seed()
|
||||||
|
seed_cameras()
|
||||||
|
|
||||||
print("Seeds executados com sucesso!")
|
print("Seeds executados com sucesso!")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
|
|||||||
@ -21,9 +21,9 @@ def seed_service_instances():
|
|||||||
|
|
||||||
# Verifica se as instâncias de serviço já existem, caso contrário, cria
|
# Verifica se as instâncias de serviço já existem, caso contrário, cria
|
||||||
instances_data = [
|
instances_data = [
|
||||||
{"service_id": service_1.id, "name": "Farmácia 1", "description": "Instância para Farmácia 1"},
|
{"service_id": service_1.id, "name": "Drograsil", "description": "Instância para Farmácia Drogasil"},
|
||||||
#{"service_id": service_1.id, "name": "Escola Beta", "description": "Instância para Escola Beta"},
|
{"service_id": service_1.id, "name": "Fogo de Chão", "description": "Instância para Escola Fogo de Chão"},
|
||||||
#{"service_id": service_2.id, "name": "Campus Principal", "description": "Controle de Acesso Campus"},
|
{"service_id": service_1.id, "name": "Sabin", "description": "Instancia para Farmacia Sabin"},
|
||||||
]
|
]
|
||||||
|
|
||||||
for instance_data in instances_data:
|
for instance_data in instances_data:
|
||||||
|
|||||||
@ -6,11 +6,12 @@ from models.user import User
|
|||||||
from extensions import db
|
from extensions import db
|
||||||
|
|
||||||
def seed_service_role_permissions():
|
def seed_service_role_permissions():
|
||||||
user = User.query.first() # Obtém o primeiro usuário para fins de exemplo
|
users = User.query.filter(User.id.in_([1, 3, 5])).all() # Alterado para considerar usuarios admins
|
||||||
|
|
||||||
service_instance = ServiceInstance.query.first() # Obtém a primeira instância de serviço
|
service_instance = ServiceInstance.query.first() # Obtém a primeira instância de serviço
|
||||||
|
|
||||||
# Verifica se há um usuário e uma instância de serviço
|
# Verifica se há um usuário e uma instância de serviço
|
||||||
if user and service_instance:
|
if users and service_instance:
|
||||||
# Define as permissões que você deseja atribuir
|
# Define as permissões que você deseja atribuir
|
||||||
permissions = [
|
permissions = [
|
||||||
{'name': "Read Access", 'description': "Permission to read data", 'type': 'read'},
|
{'name': "Read Access", 'description': "Permission to read data", 'type': 'read'},
|
||||||
@ -18,49 +19,49 @@ def seed_service_role_permissions():
|
|||||||
{'name': "Edit Access", 'description': "Permission to edit data", 'type': 'edit'},
|
{'name': "Edit Access", 'description': "Permission to edit data", 'type': 'edit'},
|
||||||
{'name': "Delete Access", 'description': "Permission to delete data", 'type': 'delete'},
|
{'name': "Delete Access", 'description': "Permission to delete data", 'type': 'delete'},
|
||||||
]
|
]
|
||||||
|
for user in users:
|
||||||
|
# Itera sobre todos os service roles (1 a 10)
|
||||||
|
for service_role_id in range(1, 11): # Para cada role de 1 até 10
|
||||||
|
service_role = ServiceRole.query.get(service_role_id)
|
||||||
|
if not service_role:
|
||||||
|
print(f"ServiceRole com id {service_role_id} não encontrado.")
|
||||||
|
continue # Se o service_role não existir, pula
|
||||||
|
|
||||||
# Itera sobre todos os service roles (1 a 10)
|
# Para cada permissão definida, associa ao service role
|
||||||
for service_role_id in range(1, 11): # Para cada role de 1 até 10
|
for perm in permissions:
|
||||||
service_role = ServiceRole.query.get(service_role_id)
|
# Verifica se a permissão já existe no banco de dados
|
||||||
if not service_role:
|
existing_permission = Permission.query.filter_by(name=perm['name']).first()
|
||||||
print(f"ServiceRole com id {service_role_id} não encontrado.")
|
if not existing_permission:
|
||||||
continue # Se o service_role não existir, pula
|
# Se a permissão não existir, cria e adiciona ao banco
|
||||||
|
permission = Permission(name=perm['name'], description=perm['description'])
|
||||||
|
db.session.add(permission)
|
||||||
|
db.session.commit()
|
||||||
|
print(f"Permissão '{perm['name']}' criada com sucesso.")
|
||||||
|
else:
|
||||||
|
permission = existing_permission
|
||||||
|
|
||||||
# Para cada permissão definida, associa ao service role
|
# Verifica se a permissão de papel de serviço já existe
|
||||||
for perm in permissions:
|
existing_permission_role = ServiceRolePermission.query.filter_by(
|
||||||
# Verifica se a permissão já existe no banco de dados
|
|
||||||
existing_permission = Permission.query.filter_by(name=perm['name']).first()
|
|
||||||
if not existing_permission:
|
|
||||||
# Se a permissão não existir, cria e adiciona ao banco
|
|
||||||
permission = Permission(name=perm['name'], description=perm['description'])
|
|
||||||
db.session.add(permission)
|
|
||||||
db.session.commit()
|
|
||||||
print(f"Permissão '{perm['name']}' criada com sucesso.")
|
|
||||||
else:
|
|
||||||
permission = existing_permission
|
|
||||||
|
|
||||||
# Verifica se a permissão de papel de serviço já existe
|
|
||||||
existing_permission_role = ServiceRolePermission.query.filter_by(
|
|
||||||
service_role_id=service_role.id,
|
|
||||||
service_instance_id=service_instance.id,
|
|
||||||
permission_id=permission.id,
|
|
||||||
user_id=user.id
|
|
||||||
).first()
|
|
||||||
|
|
||||||
if not existing_permission_role:
|
|
||||||
# Se a permissão de papel de serviço não existir, cria e adiciona ao banco
|
|
||||||
service_role_permission = ServiceRolePermission(
|
|
||||||
service_role_id=service_role.id,
|
service_role_id=service_role.id,
|
||||||
service_instance_id=service_instance.id,
|
service_instance_id=service_instance.id,
|
||||||
permission_id=permission.id,
|
permission_id=permission.id,
|
||||||
permission_type=perm['type'], # Definindo o tipo de permissão (read, write, etc.)
|
|
||||||
user_id=user.id
|
user_id=user.id
|
||||||
)
|
).first()
|
||||||
db.session.add(service_role_permission)
|
|
||||||
db.session.commit()
|
if not existing_permission_role:
|
||||||
print(f"Permissão de papel de serviço '{perm['name']}' atribuída com sucesso para o role '{service_role.name}'.")
|
# Se a permissão de papel de serviço não existir, cria e adiciona ao banco
|
||||||
else:
|
service_role_permission = ServiceRolePermission(
|
||||||
print(f"Permissão de papel de serviço '{perm['name']}' já atribuída para o role '{service_role.name}'.")
|
service_role_id=service_role.id,
|
||||||
|
service_instance_id=service_instance.id,
|
||||||
|
permission_id=permission.id,
|
||||||
|
permission_type=perm['type'], # Definindo o tipo de permissão (read, write, etc.)
|
||||||
|
user_id=user.id
|
||||||
|
)
|
||||||
|
db.session.add(service_role_permission)
|
||||||
|
db.session.commit()
|
||||||
|
print(f"Permissão de papel de serviço '{perm['name']}' atribuída com sucesso para o role '{service_role.name}'.")
|
||||||
|
else:
|
||||||
|
print(f"Permissão de papel de serviço '{perm['name']}' já atribuída para o role '{service_role.name}'.")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("Usuário ou instância de serviço não encontrados.")
|
print("Usuário ou instância de serviço não encontrados.")
|
||||||
|
|||||||
@ -3,6 +3,7 @@ from models.service_roles import ServiceRole
|
|||||||
|
|
||||||
def seed_service_roles():
|
def seed_service_roles():
|
||||||
roles = [
|
roles = [
|
||||||
|
#-------------------- Farmacia 1 ----------------------------------------
|
||||||
# Colaboradores Internos Role: Gestão de câmeras
|
# Colaboradores Internos Role: Gestão de câmeras
|
||||||
{
|
{
|
||||||
"service_id": 1,
|
"service_id": 1,
|
||||||
@ -58,6 +59,7 @@ def seed_service_roles():
|
|||||||
"name": "Admin",
|
"name": "Admin",
|
||||||
"description": "Coordenador de plataforma."
|
"description": "Coordenador de plataforma."
|
||||||
},
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Verificar se o role já existe antes de criar
|
# Verificar se o role já existe antes de criar
|
||||||
|
|||||||
@ -5,6 +5,7 @@ def seed_services():
|
|||||||
services = [
|
services = [
|
||||||
#{"name": "Chamada Escolar Pro", "description": "Sistema de gestão para escolas"},
|
#{"name": "Chamada Escolar Pro", "description": "Sistema de gestão para escolas"},
|
||||||
{"name": "Controle de Acesso", "description": "Gestão de acessos virtuais"},
|
{"name": "Controle de Acesso", "description": "Gestão de acessos virtuais"},
|
||||||
|
{"name": "Controle de Camera", "description": "Gestão de Camera"}
|
||||||
]
|
]
|
||||||
|
|
||||||
for service_data in services:
|
for service_data in services:
|
||||||
|
|||||||
@ -7,7 +7,7 @@ def seed_user_service_roles():
|
|||||||
service_instance_id = 1 # Exemplo: instância de serviço para associar os papéis
|
service_instance_id = 1 # Exemplo: instância de serviço para associar os papéis
|
||||||
|
|
||||||
# Criar até 10 service_role_ids para o usuário 1 na instância 1
|
# Criar até 10 service_role_ids para o usuário 1 na instância 1
|
||||||
for service_role_id in range(1, 11): # Gerando service_role_id de 1 até 10
|
for service_role_id in range(1, 9): # Gerando service_role_id de 1 até 10
|
||||||
user_role = UserServiceRole(
|
user_role = UserServiceRole(
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
service_instance_id=service_instance_id,
|
service_instance_id=service_instance_id,
|
||||||
|
|||||||
@ -5,6 +5,7 @@ from sqlalchemy.exc import IntegrityError
|
|||||||
def seed_users():
|
def seed_users():
|
||||||
# Lista de usuários para criar
|
# Lista de usuários para criar
|
||||||
users_data = [
|
users_data = [
|
||||||
|
#---login farmacia 1-----
|
||||||
{
|
{
|
||||||
"username": "admin",
|
"username": "admin",
|
||||||
"email": "admin@exemplo.com",
|
"email": "admin@exemplo.com",
|
||||||
@ -17,6 +18,33 @@ def seed_users():
|
|||||||
"phone": "987654321",
|
"phone": "987654321",
|
||||||
"password": "senha456"
|
"password": "senha456"
|
||||||
},
|
},
|
||||||
|
#-----login farmacia 2--------
|
||||||
|
{
|
||||||
|
"username": "fogo_admin",
|
||||||
|
"email": "fogodechaoadmin@exemplo.com",
|
||||||
|
"phone": "983749265",
|
||||||
|
"password": "senha123"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "fogo_user_2",
|
||||||
|
"email": "fogodechaouser2@exemplo.com",
|
||||||
|
"phone": "983084637",
|
||||||
|
"password": "senha456"
|
||||||
|
},
|
||||||
|
#----------login farmacia 3----------
|
||||||
|
{
|
||||||
|
"username": "sabin_admin",
|
||||||
|
"email": "sabinadmin@exemplo.com",
|
||||||
|
"phone": "983749265",
|
||||||
|
"password": "senha123"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"username": "sabin_user_2",
|
||||||
|
"email": "sabinuser2@exemplo.com",
|
||||||
|
"phone": "983086725",
|
||||||
|
"password": "senha456"
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
users_added = False # Flag para verificar se algum usuário foi adicionado
|
users_added = False # Flag para verificar se algum usuário foi adicionado
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user