Ejemplo n.º 1
0
 public function updateSessionId(User $user, $oldUserId)
 {
     SessionDAO::create()->dropByUserId($oldUserId);
     $session = SessionDAO::create()->getByUserId($user->getId());
     $session->setSessionId($user->getWSRequest()->getCookie('token'))->setAccessTime(date(self::TIMESTAMP))->setUserId($user->getId());
     $session->save();
     PropertiesDAO::create()->dropByUserId($oldUserId);
     UserBlacklistDAO::create()->dropByUserId($oldUserId);
     NameChangeDAO::create()->dropByUserId($oldUserId);
     UserDAO::create()->dropById($oldUserId);
 }
Ejemplo n.º 2
0
 public function run(User $user, $args)
 {
     $request = explode(' ', $args, 1);
     $name = $request[0];
     if (!($targetUser = PropertiesDAO::create()->getByUserName($name))) {
         RespondError::make($user, ['name' => "{$name} не найден"]);
         return;
     }
     $list = NameChangeDAO::create()->getHistoryByUserId($targetUser->getUserId());
     $html = '<table class="table table-striped">';
     /** @var $row NameChangeDAO */
     foreach ($list as $row) {
         $html .= '<tr>';
         $html .= '<td>' . $row->getDateRaw() . '</td>';
         $html .= '<td>' . $row->getName() . '</td>';
         $html .= '</tr>';
     }
     $html .= '</table>';
     return [$html, true];
 }
Ejemplo n.º 3
0
    http_response_code(400);
    return;
}
/** @var SessionDAO $session */
$session = $container->get('session')->read($_COOKIE['token']);
if (!$session->getUserId()) {
    http_response_code(400);
    return json_encode(['error' => 'Unauthorized']);
}
$owner = \SocioChat\DAO\UserDAO::create()->getById($session->getUserId());
$user = \SocioChat\DAO\UserDAO::create()->getById($userId);
if (!$user->getId()) {
    http_response_code(400);
    return json_encode(['error' => 'No user found']);
}
$props = $user->getPropeties();
$avatarDir = DI::get()->getConfig()->uploads->avatars->wwwfolder . DIRECTORY_SEPARATOR;
$note = $owner->getUserNotes()->getNote($user->getId());
$total = $props->getTotal();
$dtF = new DateTime("@0");
$dtT = new DateTime("@" . $props->getOnlineCount());
$names = [];
foreach (NameChangeDAO::create()->getHistoryByUserId($user->getId()) as $name) {
    /** @var NameChangeDAO $name */
    $names[] = $name->getName();
}
$response = ['id' => $user->getId(), 'name' => $props->getName(), 'about' => nl2br($props->getAbout()), 'avatar' => $props->getAvatarImg() ? $avatarDir . $props->getAvatarImg() : null, 'tim' => $props->getTim()->getName(), 'sex' => $props->getSex()->getName(), 'city' => $props->getCity(), 'birth' => $props->getAge() ?: $lang->getPhrase('NotSpecified'), 'note' => $note ?: '', 'karma' => $props->getKarma(), 'dateRegister' => $user->getDateRegister(), 'onlineTime' => $dtF->diff($dtT)->format('%a дней %h часов %i минут'), 'wordRating' => $props->getWordRating() ? $props->getWordRating() . '-й из ' . $total : $lang->getPhrase('NotSpecified'), 'rudeRating' => $props->getRudeRating() ? $props->getRudeRating() . '-й из ' . $total : $lang->getPhrase('NotSpecified'), 'musicRating' => $props->getMusicRating() ? $props->getMusicRating() . '-й из ' . $total : $lang->getPhrase('NotSpecified'), 'names' => implode(', ', $names)];
$userActions = new \SocioChat\Permissions\UserActions($owner);
$response['allowed'] = $userActions->getAllowed($user);
http_response_code(200);
echo json_encode($response);
 private function handleNameChange(User $user, $request)
 {
     $name = $request[PropertiesDAO::NAME];
     $guestName = $user->getLang()->getPhrase('Guest');
     $nameChangeFreq = DI::get()->getConfig()->nameChangeFreq;
     $isNewbie = mb_strpos($name, $guestName) !== false;
     $changeLog = NameChangeDAO::create()->getLastByUser($user);
     $hasNameChanged = $name != $user->getProperties()->getName();
     if ($isNewbie) {
         $newname = str_replace($guestName, TimEnum::create($request[PropertiesDAO::TIM])->getShortName(), $name);
         $duplUser = PropertiesDAO::create()->getByUserName($newname);
         if (!($duplUser->getId() && $duplUser->getUserId() != $user->getId())) {
             $name = $newname;
         }
     } elseif ($changeLog && $hasNameChanged && !$this->isExpired($changeLog, $nameChangeFreq)) {
         RespondError::make($user, $user->getLang()->getPhrase('NameChangePolicy', date('Y-m-d H:i', $changeLog->getDate() + $nameChangeFreq)));
         return;
     }
     if ($changeLog = NameChangeDAO::create()->getLastByName($name)) {
         if ($changeLog->getUserId() != $user->getId()) {
             if (!$this->isExpired($changeLog, $nameChangeFreq)) {
                 RespondError::make($user, $user->getLang()->getPhrase('NameTakePolicy', date('Y-m-d H:i', $changeLog->getDate() + $nameChangeFreq)));
                 return;
             }
         }
     }
     if ($hasNameChanged && !$isNewbie) {
         NameChangeDAO::create()->setUser($user)->save();
     }
 }