upload samples com login
Deploy / Deploy (push) Successful in 1m58s
Details
Deploy / Deploy (push) Successful in 1m58s
Details
This commit is contained in:
parent
5562b97846
commit
904aa85b19
|
|
@ -2395,11 +2395,26 @@
|
|||
},
|
||||
"Teste": {
|
||||
"Testes": {
|
||||
"gravacao_14-13-31.ogg": {
|
||||
"_isFile": true
|
||||
},
|
||||
"gravacao_14-27-58.ogg": {
|
||||
"_isFile": true
|
||||
},
|
||||
"gravacao_14-29-41.ogg": {
|
||||
"_isFile": true
|
||||
},
|
||||
"bassdrum_acoustic01_-_Copia.ogg": {
|
||||
"_isFile": true
|
||||
},
|
||||
"gravacao_14-34-59.ogg": {
|
||||
"_isFile": true
|
||||
},
|
||||
"gravacao_14-18-59.ogg": {
|
||||
"_isFile": true
|
||||
},
|
||||
"gravacao_22-34-01.ogg": {
|
||||
"_isFile": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -2824,6 +2839,9 @@
|
|||
"_isFile": true
|
||||
}
|
||||
},
|
||||
"gravacao_22-42-08.ogg": {
|
||||
"_isFile": true
|
||||
},
|
||||
"drums": {
|
||||
"hihat_opened03.ogg": {
|
||||
"_isFile": true
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ title: "{{ page.file }}"
|
|||
<div class="publication">
|
||||
<div class="container">
|
||||
<br />
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ permalink: /automation/
|
|||
<div class="publication">
|
||||
<div class="container">
|
||||
<br />
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ permalink: /bassline/
|
|||
<div class="publication">
|
||||
<div class="container">
|
||||
<br />
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ permalink: /beats/
|
|||
|
||||
<main class="main-content">
|
||||
<div class="publication">
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="container">
|
||||
<br />
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ permalink: /bpm/
|
|||
<div class="publication">
|
||||
<div class="container">
|
||||
<br />
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ permalink: /buscas/
|
|||
<div class="publication">
|
||||
|
||||
<div class="container">
|
||||
{% include modal_login.html %}
|
||||
<br>
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ permalink: /envie_seu_projeto/
|
|||
<main class="main-content">
|
||||
<div class="publication">
|
||||
<div class="container">
|
||||
{% include modal_login.html %}
|
||||
<br />
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ permalink: /instruments/
|
|||
<div class="publication">
|
||||
|
||||
<div class="container">
|
||||
{% include modal_login.html %}
|
||||
<br />
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ permalink: /pattern/
|
|||
<div class="publication">
|
||||
<div class="container">
|
||||
<br />
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ permalink: /plugin/
|
|||
<div class="publication">
|
||||
<div class="container">
|
||||
<br />
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ permalink: /projetos/
|
|||
<div class="publication">
|
||||
<div class="container">
|
||||
<br />
|
||||
{% include modal_login.html %}
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
{% include sidebar.html %}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ permalink: /sample/
|
|||
<div class="publication">
|
||||
|
||||
<div class="container">
|
||||
{% include modal_login.html %}
|
||||
<br />
|
||||
|
||||
<div class="tabs is-centered is-boxed is-medium mb-6">
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import shutil
|
|||
import time
|
||||
import io
|
||||
|
||||
from flask import Flask, request, jsonify, send_file
|
||||
from flask import Flask, request, jsonify, send_file, redirect
|
||||
from flask_cors import CORS
|
||||
from werkzeug.utils import secure_filename
|
||||
|
||||
|
|
@ -21,14 +21,12 @@ from flask_admin import Admin, AdminIndexView, expose
|
|||
from flask_admin.contrib.sqla import ModelView
|
||||
|
||||
from main import process_single_file, rebuild_indexes, generate_manifests, slugify
|
||||
from utils import ALLOWED_EXTENSIONS, ALLOWED_SAMPLE_EXTENSIONS, MMP_FOLDER, MMPZ_FOLDER, DATA_FOLDER, CERT_PATH, KEY_PATH, BASE_DATA, SRC_MMPSEARCH, SAMPLE_SRC, METADATA_FOLDER, XML_IMPORTED_PATH_PREFIX, SAMPLE_MANIFEST
|
||||
from utils import ALLOWED_EXTENSIONS, ALLOWED_SAMPLE_EXTENSIONS, MMP_FOLDER, MMPZ_FOLDER, DATA_FOLDER, BASE_DATA, SRC_MMPSEARCH, SAMPLE_SRC, METADATA_FOLDER, XML_IMPORTED_PATH_PREFIX, SAMPLE_MANIFEST
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
# --- CONFIGURAÇÃO DE SEGURANÇA E BANCO ---
|
||||
# IMPORTANTE: Troque esta chave em produção!
|
||||
app.config['SECRET_KEY'] = '25de5592bf94c2ca18e27baa0ae2d4ee22a63012f32e1be719d31f530c215a387b9ec0c9d96be38e80a7ccdd859e04408facefff8fd9119e7f5a2d987d85abb7'
|
||||
# O banco ficará salvo em /nethome/jotachina/projetos/mmpSearch/users.db (BASE_DATA)
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(DATA_FOLDER, 'users.db')
|
||||
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||
|
||||
|
|
@ -56,12 +54,17 @@ class SecureModelView(ModelView):
|
|||
# Retorna erro JSON ou redireciona (como é painel, melhor redirecionar ou negar)
|
||||
return jsonify({"error": "Acesso restrito a administradores."}), 403
|
||||
|
||||
# Classe para proteger a Home do Admin (Dashboard)
|
||||
class SecureIndexView(AdminIndexView):
|
||||
@expose('/')
|
||||
def index(self):
|
||||
if not current_user.is_authenticated or not current_user.is_admin:
|
||||
return jsonify({"error": "Acesso restrito."}), 403
|
||||
# Em vez de retornar JSON, redireciona para a home
|
||||
# O usuário verá o botão de login lá.
|
||||
return redirect('/')
|
||||
|
||||
# OU, se quiser ser mais explícito, retorna 403 mas em HTML (opcional)
|
||||
# return "<h1>Acesso Negado</h1><p>Você precisa ser admin.</p>", 403
|
||||
|
||||
return super(SecureIndexView, self).index()
|
||||
|
||||
# Cria o banco na inicialização se não existir
|
||||
|
|
@ -72,7 +75,7 @@ with app.app_context():
|
|||
def load_user(user_id):
|
||||
return User.query.get(int(user_id))
|
||||
|
||||
# --- SUAS FUNÇÕES UTILITÁRIAS MANTIDAS ---
|
||||
# --- FUNÇÕES UTILITÁRIAS ---
|
||||
|
||||
def allowed_file(filename):
|
||||
return "." in filename and filename.rsplit(".", 1)[1].lower() in ALLOWED_EXTENSIONS
|
||||
|
|
@ -81,8 +84,9 @@ def allowed_sample(filename):
|
|||
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_SAMPLE_EXTENSIONS
|
||||
|
||||
def run_jekyll_build():
|
||||
BUNDLE_PATH = "/nethome/jotachina/projetos/mmpSearch/vendor/bundle/ruby/3.2.0/bin/bundle"
|
||||
print("Iniciando build do Jekyll...")
|
||||
command = ["bundle", "exec", "jekyll", "build", "--destination", "/var/www/html/trens/mmpSearch/"]
|
||||
command = [BUNDLE_PATH, "exec", "jekyll", "build", "--destination", "/var/www/html/trens/mmpSearch/"]
|
||||
try:
|
||||
subprocess.run(command, check=True, cwd=BASE_DATA, capture_output=True, text=True)
|
||||
print("Jekyll Build Sucesso!")
|
||||
|
|
@ -436,7 +440,8 @@ def upload_sample_standalone():
|
|||
admin = Admin(
|
||||
app,
|
||||
name='MMP Admin',
|
||||
index_view=SecureIndexView(url='/api/admin')
|
||||
url='/api/admin',
|
||||
index_view=SecureIndexView()
|
||||
)
|
||||
|
||||
# Adiciona a visualização da tabela de Usuários
|
||||
|
|
|
|||
Loading…
Reference in New Issue