修复bug,添加备案号悬挂功能
This commit is contained in:
@@ -82,6 +82,15 @@ class PermissionChecker:
|
||||
role = await PermissionChecker.get_user_role(user_id)
|
||||
return role in ["班主任", "学习委员"]
|
||||
|
||||
@staticmethod
|
||||
async def get_user_class_id(user_id: int) -> Optional[int]:
|
||||
"""
|
||||
获取用户关联的班级ID
|
||||
单班级系统,固定返回1
|
||||
"""
|
||||
# 本系统为单班级设计,class_id 固定为 1
|
||||
return 1
|
||||
|
||||
@staticmethod
|
||||
async def check_can_revoke(user_id: int, record_id: int) -> bool:
|
||||
"""
|
||||
|
||||
@@ -122,21 +122,12 @@ class StudentService:
|
||||
class_id: Optional[int] = None,
|
||||
limit: int = 50
|
||||
) -> Dict[str, Any]:
|
||||
"""获取排行榜"""
|
||||
# 如果未指定班级,获取用户所在班级
|
||||
if not class_id:
|
||||
user = await StudentModel.get_by_id(user_id) if user_id else None
|
||||
if user:
|
||||
class_id = user["class_id"]
|
||||
else:
|
||||
admin_class = await PermissionChecker.get_user_class_id(user_id)
|
||||
if admin_class:
|
||||
class_id = admin_class
|
||||
|
||||
ranking = await StudentModel.get_ranking(class_id=class_id, limit=limit)
|
||||
"""获取排行榜(单班级系统)"""
|
||||
# 单班级系统,直接获取排行榜
|
||||
ranking = await StudentModel.get_ranking(limit=limit)
|
||||
|
||||
return {
|
||||
"class_id": class_id,
|
||||
"class_id": class_id or 1,
|
||||
"ranking": ranking
|
||||
}
|
||||
|
||||
|
||||
@@ -26,3 +26,9 @@ SITE_NAME=班级操行分管理系统
|
||||
|
||||
# 会话超时时间(分钟)
|
||||
SESSION_TIMEOUT=30
|
||||
|
||||
# ICP备案号配置
|
||||
# 是否启用ICP备案号显示 - true/false
|
||||
ICP_ENABLED=false
|
||||
# ICP备案号
|
||||
ICP_NUMBER=京ICP备1234567890号-x
|
||||
@@ -38,7 +38,7 @@ foreach ($lines as $line) {
|
||||
}
|
||||
|
||||
// 检查必要配置是否存在
|
||||
$requiredKeys = ['API_BASE_URL', 'API_TIMEOUT', 'JWT_STORAGE_KEY', 'USER_STORAGE_KEY', 'SITE_NAME', 'SESSION_TIMEOUT'];
|
||||
$requiredKeys = ['API_BASE_URL', 'API_TIMEOUT', 'JWT_STORAGE_KEY', 'USER_STORAGE_KEY', 'SITE_NAME', 'SESSION_TIMEOUT', 'ICP_ENABLED', 'ICP_NUMBER'];
|
||||
$missingKeys = [];
|
||||
|
||||
foreach ($requiredKeys as $key) {
|
||||
@@ -58,6 +58,8 @@ define('JWT_STORAGE_KEY', $config['JWT_STORAGE_KEY']);
|
||||
define('USER_STORAGE_KEY', $config['USER_STORAGE_KEY']);
|
||||
define('SITE_NAME', $config['SITE_NAME']);
|
||||
define('SESSION_TIMEOUT', (int)$config['SESSION_TIMEOUT']);
|
||||
define('ICP_ENABLED', $config['ICP_ENABLED'] === 'false');
|
||||
define('ICP_NUMBER', $config['ICP_NUMBER'] ?? '');
|
||||
|
||||
// 会话配置
|
||||
ini_set('session.cookie_httponly', 1);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<div class="footer">
|
||||
<p>© <?php echo date('Y'); ?> Sea Network Technology Studio</p>
|
||||
<p>© <?php echo date('Y'); ?> Sea Network Technology Studio<?php if (defined('ICP_ENABLED') && ICP_ENABLED && defined('ICP_NUMBER') && ICP_NUMBER): ?> | <a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer"><?php echo htmlspecialchars(ICP_NUMBER); ?></a><?php endif; ?></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user