This commit is contained in:
parent
627be9a4f1
commit
301145fcff
|
@ -880,9 +880,9 @@ const AdminPage: Component<AdminPageProps> = (props) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<button class="copy-btn" title="Скопировать" onClick={handleCopy} style="margin-left: 6px">
|
<a class="btn" title="Скопировать" type="button" style="margin-left: 6px" onClick={handleCopy}>
|
||||||
📋
|
📋
|
||||||
</button>
|
</a>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -893,9 +893,9 @@ const AdminPage: Component<AdminPageProps> = (props) => {
|
||||||
*/
|
*/
|
||||||
function ShowHideButton({ shown, onToggle }: { shown: boolean, onToggle: () => void }) {
|
function ShowHideButton({ shown, onToggle }: { shown: boolean, onToggle: () => void }) {
|
||||||
return (
|
return (
|
||||||
<button class="show-btn" title={shown ? 'Скрыть' : 'Показать'} onClick={onToggle} style="margin-left: 6px">
|
<a class="btn" title={shown ? 'Скрыть' : 'Показать'} type="button" style="margin-left: 6px" onClick={onToggle}>
|
||||||
{shown ? '🙈' : '👁️'}
|
{shown ? '🙈' : '👁️'}
|
||||||
</button>
|
</a>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -990,17 +990,17 @@ const AdminPage: Component<AdminPageProps> = (props) => {
|
||||||
<tbody>
|
<tbody>
|
||||||
<For each={section.variables}>
|
<For each={section.variables}>
|
||||||
{(variable) => {
|
{(variable) => {
|
||||||
const shown = shownVars()[variable.key] || false
|
const shown = () => shownVars()[variable.key] || false
|
||||||
return (
|
return (
|
||||||
<tr>
|
<tr>
|
||||||
<td>{variable.key}</td>
|
<td>{variable.key}</td>
|
||||||
<td>
|
<td>
|
||||||
{variable.isSecret && !shown
|
{variable.isSecret && !shown()
|
||||||
? '••••••••'
|
? '••••••••'
|
||||||
: (variable.value || <span class="empty-value">не задано</span>)}
|
: (variable.value || <span class="empty-value">не задано</span>)}
|
||||||
<CopyButton value={variable.value || ''} />
|
<CopyButton value={variable.value || ''} />
|
||||||
{variable.isSecret && (
|
{variable.isSecret && (
|
||||||
<ShowHideButton shown={shown} onToggle={() => toggleShow(variable.key)} />
|
<ShowHideButton shown={shown()} onToggle={() => toggleShow(variable.key)} />
|
||||||
)}
|
)}
|
||||||
</td>
|
</td>
|
||||||
<td>{variable.description || '-'}</td>
|
<td>{variable.description || '-'}</td>
|
||||||
|
|
|
@ -840,4 +840,11 @@ th.sortable.sorted {
|
||||||
th.sortable.sorted .sort-icon {
|
th.sortable.sorted .sort-icon {
|
||||||
color: var(--primary-color);
|
color: var(--primary-color);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
text-decoration: none;
|
||||||
|
margin-left: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
|
@ -389,12 +389,17 @@ async def load_authors_by(_, info, by, limit, offset):
|
||||||
Returns:
|
Returns:
|
||||||
list: Список авторов с учетом критерия
|
list: Список авторов с учетом критерия
|
||||||
"""
|
"""
|
||||||
# Получаем ID текущего пользователя и флаг админа из контекста
|
try:
|
||||||
viewer_id = info.context.get("author", {}).get("id")
|
# Получаем ID текущего пользователя и флаг админа из контекста
|
||||||
is_admin = info.context.get("is_admin", False)
|
viewer_id = info.context.get("author", {}).get("id")
|
||||||
|
is_admin = info.context.get("is_admin", False)
|
||||||
# Используем оптимизированную функцию для получения авторов
|
|
||||||
return await get_authors_with_stats(limit, offset, by, viewer_id, is_admin)
|
# Используем оптимизированную функцию для получения авторов
|
||||||
|
return await get_authors_with_stats(limit, offset, by, viewer_id, is_admin)
|
||||||
|
except Exception as exc:
|
||||||
|
import traceback
|
||||||
|
logger.error(f"{exc}:\n{traceback.format_exc()}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
@query.field("load_authors_search")
|
@query.field("load_authors_search")
|
||||||
|
|
|
@ -86,7 +86,7 @@ class EnvManager:
|
||||||
# Переменные, которые следует всегда помечать как секретные
|
# Переменные, которые следует всегда помечать как секретные
|
||||||
SECRET_VARS_PATTERNS = [
|
SECRET_VARS_PATTERNS = [
|
||||||
r".*TOKEN.*", r".*SECRET.*", r".*PASSWORD.*", r".*KEY.*",
|
r".*TOKEN.*", r".*SECRET.*", r".*PASSWORD.*", r".*KEY.*",
|
||||||
r".*PWD.*", r".*PASS.*", r".*CRED.*",
|
r".*PWD.*", r".*PASS.*", r".*CRED.*", r".*_DSN.*",
|
||||||
r".*JWT.*", r".*SESSION.*", r".*OAUTH.*",
|
r".*JWT.*", r".*SESSION.*", r".*OAUTH.*",
|
||||||
r".*GITHUB.*", r".*GOOGLE.*", r".*FACEBOOK.*"
|
r".*GITHUB.*", r".*GOOGLE.*", r".*FACEBOOK.*"
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user