Page MenuHomePhorge

UserAliasObserver.php
No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None

UserAliasObserver.php

<?php
namespace App\Observers;
use App\Domain;
use App\User;
use App\UserAlias;
class UserAliasObserver
{
/**
* Handle the "creating" event on an alias
*
* Ensures that there's no user with specified email.
*
* @param \App\UserAlias $alias The user email alias
*
* @return bool
*/
public function creating(UserAlias $alias): bool
{
$alias->alias = \strtolower($alias->alias);
if ($exists = User::emailExists($alias->alias, true, $alias_exists)) {
if (!$alias_exists) {
\Log::error("Failed creating alias {$alias->alias}. Email address exists.");
return false;
}
list($login, $domain) = explode('@', $alias->alias);
$domain = Domain::where('namespace', $domain)->first();
if (!$domain || $domain->isPublic()) {
\Log::error("Failed creating alias {$alias->alias}. Alias exists in public domain.");
return false;
}
if ($exists->wallet()->user_id != $alias->user->wallet()->user_id) {
\Log::error("Failed creating alias {$alias->alias}. Alias exists in another account.");
return false;
}
}
return true;
}
/**
* Handle the user alias "created" event.
*
* @param \App\UserAlias $alias User email alias
*
* @return void
*/
public function created(UserAlias $alias)
{
if ($alias->user) {
\App\Jobs\UserUpdate::dispatch($alias->user);
}
}
/**
* Handle the user setting "updated" event.
*
* @param \App\UserAlias $alias User email alias
*
* @return void
*/
public function updated(UserAlias $alias)
{
if ($alias->user) {
\App\Jobs\UserUpdate::dispatch($alias->user);
}
}
/**
* Handle the user setting "deleted" event.
*
* @param \App\UserAlias $alias User email alias
*
* @return void
*/
public function deleted(UserAlias $alias)
{
if ($alias->user) {
\App\Jobs\UserUpdate::dispatch($alias->user);
}
}
}

File Metadata

Mime Type
text/x-php
Expires
Fri, Apr 24, 1:23 PM (1 d, 9 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
85/f8/f94aa710e862c1a889b5f6dc58d4
Default Alt Text
UserAliasObserver.php (2 KB)

Event Timeline