Skip to content

Commit 9baf533

Browse files
committed
Improve admin pannel
1 parent 4035bab commit 9baf533

File tree

7 files changed

+2947
-170
lines changed

7 files changed

+2947
-170
lines changed

backend/app/admin_auth.py

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -99,23 +99,19 @@ async def require_admin_auth(
9999
Dependency to require admin authentication.
100100
Checks for admin session cookie and validates it.
101101
"""
102-
if not admin_session_token:
103-
raise HTTPException(
104-
status_code=status.HTTP_401_UNAUTHORIZED,
105-
detail="Admin authentication required",
106-
headers={"WWW-Authenticate": "Bearer"},
107-
)
108-
109-
try:
110-
session = await get_admin_session(db, admin_session_token)
111-
except Exception as e:
112-
# Log the database error but don't expose internal details
113-
logger.error(f"Database error in admin auth: {e}")
114-
raise HTTPException(
115-
status_code=status.HTTP_401_UNAUTHORIZED,
116-
detail="Authentication service unavailable",
117-
headers={"WWW-Authenticate": "Bearer"},
118-
)
102+
# Uncomment to bypass authentication for testing
103+
# fake_session = AdminSession(
104+
# session_token="test_token",
105+
# github_user_id=12345,
106+
# github_username="test_admin",
107+
# github_name="Test Admin",
108+
# github_email="test@example.com",
109+
# github_avatar_url="https://github.com/identicons/test.png",
110+
# created_at=datetime.now(UTC).replace(tzinfo=None),
111+
# expires_at=datetime.now(UTC).replace(tzinfo=None) + timedelta(hours=24),
112+
# is_active=True
113+
# )
114+
# return fake_session
119115

120116
if not session:
121117
raise HTTPException(

backend/app/crud.py

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -203,55 +203,6 @@ async def get_runs(
203203
return result.scalars().all()
204204

205205

206-
async def get_runs_with_commits(
207-
db: AsyncSession,
208-
commit_sha: Optional[str] = None,
209-
binary_id: Optional[str] = None,
210-
environment_id: Optional[str] = None,
211-
skip: int = 0,
212-
limit: int = 100,
213-
) -> List[tuple]:
214-
"""Get runs with their associated commit information."""
215-
query = (
216-
select(models.Run, models.Commit)
217-
.join(models.Commit, models.Run.commit_sha == models.Commit.sha)
218-
.order_by(desc(models.Run.timestamp))
219-
)
220-
221-
if commit_sha:
222-
# Use prefix matching (starts with) for commit SHA
223-
query = query.where(models.Run.commit_sha.ilike(f"{commit_sha}%"))
224-
if binary_id:
225-
query = query.where(models.Run.binary_id == binary_id)
226-
if environment_id:
227-
query = query.where(models.Run.environment_id == environment_id)
228-
229-
query = query.offset(skip).limit(limit)
230-
result = await db.execute(query)
231-
return result.all()
232-
233-
234-
async def count_runs(
235-
db: AsyncSession,
236-
commit_sha: Optional[str] = None,
237-
binary_id: Optional[str] = None,
238-
environment_id: Optional[str] = None,
239-
) -> int:
240-
"""Count total runs matching the filter criteria."""
241-
query = select(func.count(models.Run.run_id))
242-
243-
if commit_sha:
244-
# Use prefix matching (starts with) for commit SHA
245-
query = query.where(models.Run.commit_sha.ilike(f"{commit_sha}%"))
246-
if binary_id:
247-
query = query.where(models.Run.binary_id == binary_id)
248-
if environment_id:
249-
query = query.where(models.Run.environment_id == environment_id)
250-
251-
result = await db.execute(query)
252-
return result.scalar() or 0
253-
254-
255206
async def create_run(db: AsyncSession, run: schemas.RunCreate) -> models.Run:
256207
# Convert timezone-aware timestamp to timezone-naive for database storage
257208
timestamp = run.timestamp

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy