/
DATKAI
/
ITCUP
Обзор
Документация
Войти
/
DATKAI
/
ITCUP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/Models/AppSetting.php
53 строки
2 KB
ITCUP Admin
feat(ad): интеграция с AD — настройки, просмотр пользователей и групп, импорт
22 апр 2026, 08:34
22 апр 2026, 08:34
62fb60c
Код
Авторство
О чём код?
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Crypt; class AppSetting extends Model { protected $fillable = ['group', 'key', 'value', 'is_encrypted']; protected $casts = [ 'is_encrypted' => 'boolean', ]; public static function get(string $group, string $key, $default = null) { $row = static::where('group', $group)->where('key', $key)->first(); if (!$row) return $default; if ($row->is_encrypted && filled($row->value)) { try { return Crypt::decryptString($row->value); } catch (\Throwable) { return $default; } } return $row->value ?? $default; } public static function set(string $group, string $key, $value, bool $encrypted = false): void { if ($value !== null && $encrypted) { $value = Crypt::encryptString((string) $value); } static::updateOrCreate( ['group' => $group, 'key' => $key], ['value' => $value, 'is_encrypted' => $encrypted] ); } public static function getGroup(string $group): array { $rows = static::where('group', $group)->get(); $result = []; foreach ($rows as $row) { $result[$row->key] = $row->is_encrypted && filled($row->value) ? (function () use ($row) { try { return Crypt::decryptString($row->value); } catch (\Throwable) { return null; } })() : $row->value; } return $result; } }