FEAT: Added backend admin functionality
This commit is contained in:
@@ -9,6 +9,7 @@ from blueprints.stripe import stripe_bp
|
|||||||
from blueprints.user import user_bp
|
from blueprints.user import user_bp
|
||||||
from blueprints.streams import stream_bp
|
from blueprints.streams import stream_bp
|
||||||
from blueprints.chat import chat_bp
|
from blueprints.chat import chat_bp
|
||||||
|
from blueprints.admin import admin_bp
|
||||||
from blueprints.oauth import oauth_bp, init_oauth
|
from blueprints.oauth import oauth_bp, init_oauth
|
||||||
from blueprints.socket import socketio
|
from blueprints.socket import socketio
|
||||||
from celery import Celery
|
from celery import Celery
|
||||||
@@ -73,6 +74,7 @@ def create_app():
|
|||||||
app.register_blueprint(chat_bp)
|
app.register_blueprint(chat_bp)
|
||||||
app.register_blueprint(oauth_bp)
|
app.register_blueprint(oauth_bp)
|
||||||
app.register_blueprint(search_bp)
|
app.register_blueprint(search_bp)
|
||||||
|
app.register_blueprint(admin_bp)
|
||||||
|
|
||||||
socketio.init_app(app)
|
socketio.init_app(app)
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,29 @@
|
|||||||
from flask import Blueprint
|
from flask import Blueprint, session
|
||||||
from blueprints.middleware import admin_required
|
from database.database import Database
|
||||||
|
from utils.utils import sanitize
|
||||||
|
|
||||||
admin_bp = Blueprint("admin", __name__)
|
admin_bp = Blueprint("admin", __name__)
|
||||||
|
|
||||||
@admin_required
|
@admin_bp.route('/ban_user/<int:banned_user>')
|
||||||
@admin_bp.route('admin/delete_user/<int:user_id>')
|
def admin_delete_user(banned_user):
|
||||||
def admin_delete_user(user_id):
|
# Sanitise the user input
|
||||||
return
|
banned_user = sanitize(banned_user)
|
||||||
|
|
||||||
|
# Create a connection to the database
|
||||||
|
db = Database()
|
||||||
|
db.create_connection()
|
||||||
|
|
||||||
|
# Check if the user is an admin
|
||||||
|
username = session.get("username")
|
||||||
|
is_admin = db.fetchone("""
|
||||||
|
SELECT is_admin
|
||||||
|
FROM users
|
||||||
|
WHERE username = ?;
|
||||||
|
""", (username,))
|
||||||
|
|
||||||
|
# Check if the user exists
|
||||||
|
user_exists = db.fetchone("""SELECT user_id from users WHERE username = ?;""", (banned_user))
|
||||||
|
|
||||||
|
# If the user is an admin, try to delete the account
|
||||||
|
if is_admin and user_exists:
|
||||||
|
db.execute("""DELETE FROM users WHERE username = ?;""", (banned_user))
|
||||||
Binary file not shown.
@@ -1,14 +1,14 @@
|
|||||||
-- Sample Data for users
|
-- Sample Data for users
|
||||||
INSERT INTO users (username, password, email, num_followers, stream_key, is_partnered, bio, is_live, current_stream_title, current_selected_category_id) VALUES
|
INSERT INTO users (username, password, email, num_followers, stream_key, is_partnered, bio, is_live, is_admin, current_stream_title, current_selected_category_id) VALUES
|
||||||
('GamerDude', 'password123', 'gamerdude@example.com', 500, '1234', 0, 'Streaming my gaming adventures!', 1, 'Game On!', 1),
|
('GamerDude', 'password123', 'gamerdude@example.com', 500, '1234', 0, 'Streaming my gaming adventures!', 1, 0, 'Game On!', 1),
|
||||||
('MusicLover', 'music4life', 'musiclover@example.com', 1200, '2345', 0, 'I share my favorite tunes.', 1, 'Live Music Jam', 2),
|
('MusicLover', 'music4life', 'musiclover@example.com', 1200, '2345', 0, 'I share my favorite tunes.', 1, 0, 'Live Music Jam', 2),
|
||||||
('ArtFan', 'artistic123', 'artfan@example.com', 300, '3456', 0, 'Exploring the world of art.', 1, 'Sketching Live', 3),
|
('ArtFan', 'artistic123', 'artfan@example.com', 300, '3456', 0, 'Exploring the world of art.', 1, 0, 'Sketching Live', 3),
|
||||||
('EduGuru', 'learn123', 'eduguru@example.com', 800, '4567', 0, 'Teaching everything I know.', 1, 'Math Made Easy', 4),
|
('EduGuru', 'learn123', 'eduguru@example.com', 800, '4567', 0, 'Teaching everything I know.', 1, 0, 'Math Made Easy', 4),
|
||||||
('SportsStar', 'sports123', 'sportsstar@example.com', 2000, '5678', 0, 'Join me for live sports updates!', 1, 'Sports Highlights', 5);
|
('SportsStar', 'sports123', 'sportsstar@example.com', 2000, '5678', 0, 'Join me for live sports updates!', 1, 0, 'Sports Highlights', 5);
|
||||||
|
|
||||||
INSERT INTO users (username, password, email, num_followers, stream_key, is_partnered, bio) VALUES
|
INSERT INTO users (username, password, email, num_followers, stream_key, is_partnered, bio, is_live, is_admin) VALUES
|
||||||
('GamerDude2', 'password123', 'gamerdude3@gmail.com', 3200, '7890', 0, 'Streaming my gaming adventures!'),
|
('GamerDude2', 'password123', 'gamerdude3@gmail.com', 3200, '7890', 0, 'Streaming my gaming adventures!', 0, 0),
|
||||||
('dev', 'scrypt:32768:8:1$avr94c5cplosNUDc$f2ba0738080facada51a1ed370bf869199e121e547fe64a7094ef0330b5db2ab7fff87700898729977f4cd24f17c17b9e8c0c93e7241dcdf9aa522d5d1732626', 'dev@gmail.com', 1, '8080', 0, 'A test account to save that tedious signup each time!');
|
('dev', 'scrypt:32768:8:1$avr94c5cplosNUDc$f2ba0738080facada51a1ed370bf869199e121e547fe64a7094ef0330b5db2ab7fff87700898729977f4cd24f17c17b9e8c0c93e7241dcdf9aa522d5d1732626', 'dev@gmail.com', 1, '8080', 0, 'A test account to save that tedious signup each time!', 0, 0);
|
||||||
|
|
||||||
-- Sample Data for follows
|
-- Sample Data for follows
|
||||||
INSERT INTO follows (user_id, followed_id, since) VALUES
|
INSERT INTO follows (user_id, followed_id, since) VALUES
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ CREATE TABLE users
|
|||||||
is_partnered BOOLEAN NOT NULL DEFAULT 0,
|
is_partnered BOOLEAN NOT NULL DEFAULT 0,
|
||||||
is_live BOOLEAN NOT NULL DEFAULT 0,
|
is_live BOOLEAN NOT NULL DEFAULT 0,
|
||||||
bio VARCHAR(1024) DEFAULT 'This user does not have a Bio.',
|
bio VARCHAR(1024) DEFAULT 'This user does not have a Bio.',
|
||||||
|
is_admin BOOLEAN NOT NULL DEFAULT 0,
|
||||||
|
|
||||||
current_stream_title VARCHAR(100) DEFAULT 'Stream',
|
current_stream_title VARCHAR(100) DEFAULT 'Stream',
|
||||||
current_selected_category_id INTEGER DEFAULT 1
|
current_selected_category_id INTEGER DEFAULT 1
|
||||||
|
|||||||
Reference in New Issue
Block a user