Files
register/marko_unpacked/marko/cms/services/Validate.php
T
Admin Nasledstvo ac168868ee Initial import
2026-05-01 20:52:04 +03:00

67 lines
1.8 KiB
PHP

<?php
namespace app\services;
use app\controllers\PublicController;
use yii\db\ActiveRecord;
class Validate
{
/**
* @param string $uc
* @param $cb
* @return mixed|null
*/
public static function login(string $uc, $cb)
{
$p = self::getPost();
if (!$p) return null;
$email_login = $p('email_login');
$password = $p('password');
if (!$email_login)
self::error('email_login', 'This field is required');
if (!$password)
self::error('password', 'This field is required');
/** @var \app\models\_Base $uc */
$user = $uc::find()->where(['email_login' => $email_login])->one();
if (!$user)
self::error('email_login', 'Unknown email');
if (!$user->verifyPassword($password))
self::error('password', 'Wrong password');
if($user->is_active != 1)
self::error('email_login', 'This user is not active');
return $cb($user);
}
public static function defaultValidation($validation = null) {
if($validation) {
$key = array_keys($validation)[0];
self::error($key, $validation[$key], $validation[0] ?? []);
}
}
private static function error($field, $message, $params = [])
{
header('Content-type: application/json');
echo json_encode([
'error' => true,
'field' => $field,
'message' => \Yii::t('cms', $message, $params)
]);
exit;
}
private static function getPost()
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
return function ($param) {
if (isset($_POST[$param]))
return $_POST[$param];
return null;
};
}
}