Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Pathologic committed May 1, 2022
1 parent ceef15d commit 594ef70
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 39 deletions.
42 changes: 23 additions & 19 deletions src/Services/Users/UserEdit.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ class UserEdit implements UserServiceInterface

/**
* UserRegistration constructor.
* @param array $userData
* @param bool $events
* @param bool $cache
* @param array $userData
* @param bool $events
* @param bool $cache
*/
public function __construct(array $userData, bool $events = true, bool $cache = true)
{
Expand All @@ -66,10 +66,12 @@ public function __construct(array $userData, bool $events = true, bool $cache =
public function getValidationRules(): array
{
return [
'id' => ['required'],
'username' => [Rule::unique('users')->ignore($this->userData['id'])],
'id' => ['required'],
'username' => ['filled', Rule::unique('users')->ignore($this->userData['id'])],
'password' => ['min:6', 'confirmed'],
'email' => [Rule::unique('user_attributes')->ignore($this->userData['id'], 'internalKey')],
'email' => [
'filled', 'email:rfc', Rule::unique('user_attributes')->ignore($this->userData['id'], 'internalKey')
],
];
}

Expand All @@ -79,11 +81,12 @@ public function getValidationRules(): array
public function getValidationMessages(): array
{
return [
'id.required' => Lang::get("global.required_field", ['field' => 'username']),
'id.required' => Lang::get("global.required_field", ['field' => 'username']),
'password.confirmed' => Lang::get("global.password_confirmed", ['field' => 'password']),
'password.min' => Lang::get("global.password_gen_length"),
'username.unique' => Lang::get('global.username_unique'),
'email.unique' => Lang::get('global.email_unique'),
'password.min' => Lang::get("global.password_gen_length"),
'email.email' => Lang::get("validation.email", ['attribute' => 'email']),
'username.unique' => Lang::get('global.username_unique'),
'email.unique' => Lang::get('global.email_unique'),
];
}

Expand All @@ -100,10 +103,10 @@ public function process(): \Illuminate\Database\Eloquent\Model

// invoke OnBeforeUserFormSave event
if ($this->events) {
EvolutionCMS()->invokeEvent("OnBeforeUserSave", array(
EvolutionCMS()->invokeEvent("OnBeforeUserSave", [
"mode" => "upd",
"user" => &$this->userData,
));
]);
}

if (!$this->validate()) {
Expand All @@ -121,22 +124,23 @@ public function process(): \Illuminate\Database\Eloquent\Model
$this->userData['dob'] = strtotime($this->userData['dob']);
}
foreach ($this->userData as $attribute => $value) {
if (in_array($attribute, $user->attributes->getFillable()) && $attribute != 'id' && $attribute != 'internalKey' && $attribute != 'role') {
if (in_array($attribute,
$user->attributes->getFillable()) && $attribute != 'id' && $attribute != 'internalKey' && $attribute != 'role') {
$user->attributes->{$attribute} = $value;
}
}
$user->attributes->save();

// invoke OnWebSaveUser event
if ($this->events) {
EvolutionCMS()->invokeEvent("OnUserFormSave", array(
"mode" => "upd",
"userid" => $user->getKey(),
"username" => $user->username,
EvolutionCMS()->invokeEvent("OnUserFormSave", [
"mode" => "upd",
"userid" => $user->getKey(),
"username" => $user->username,
"userpassword" => isset($this->userData['clearPassword']) ? $this->userData['clearPassword'] : '',
"useremail" => $user->attributes->email,
"useremail" => $user->attributes->email,
"userfullname" => $user->attributes->fullname
));
]);
}

if ($this->cache) {
Expand Down
43 changes: 23 additions & 20 deletions src/Services/Users/UserRegistration.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ class UserRegistration implements UserServiceInterface

/**
* UserRegistration constructor.
* @param array $userData
* @param bool $events
* @param bool $cache
* @param array $userData
* @param bool $events
* @param bool $cache
*/
public function __construct(array $userData, bool $events = true, bool $cache = true)
{
Expand All @@ -61,7 +61,7 @@ public function getValidationRules(): array
return [
'username' => ['required', 'unique:users'],
'password' => ['required', 'min:6', 'confirmed'],
'email' => ['required', 'email', 'unique:user_attributes'],
'email' => ['required', 'email:rfc', 'unique:user_attributes'],
];
}

Expand All @@ -71,13 +71,14 @@ public function getValidationRules(): array
public function getValidationMessages(): array
{
return [
'username.required' => Lang::get("global.required_field", ['field' => 'username']),
'password.required' => Lang::get("global.required_field", ['field' => 'password']),
'username.required' => Lang::get("global.required_field", ['field' => 'username']),
'password.required' => Lang::get("global.required_field", ['field' => 'password']),
'password.confirmed' => Lang::get("global.password_confirmed", ['field' => 'password']),
'email.required' => Lang::get("global.required_field", ['field' => 'email']),
'password.min' => Lang::get("global.password_gen_length"),
'username.unique' => Lang::get('global.username_unique'),
'email.unique' => Lang::get('global.email_unique'),
'email.required' => Lang::get("global.required_field", ['field' => 'email']),
'email.email' => Lang::get("validation.email", ['attribute' => 'email']),
'password.min' => Lang::get("global.password_gen_length"),
'username.unique' => Lang::get('global.username_unique'),
'email.unique' => Lang::get('global.email_unique'),
];
}

Expand All @@ -94,10 +95,10 @@ public function process(): \Illuminate\Database\Eloquent\Model

// invoke OnBeforeUserFormSave event
if ($this->events) {
EvolutionCMS()->invokeEvent("OnBeforeUserSave", array(
EvolutionCMS()->invokeEvent("OnBeforeUserSave", [
"mode" => "new",
"user" => &$this->userData,
));
]);
}

if (!$this->validate()) {
Expand All @@ -110,7 +111,9 @@ public function process(): \Illuminate\Database\Eloquent\Model
$this->userData['clearPassword'] = $this->userData['password'];
$this->userData['password'] = EvolutionCMS()->getPasswordHash()->HashPassword($this->userData['password']);
if (isset($this->userData['dob'])) {
if (!is_numeric($this->userData['dob'])) $this->userData['dob'] = null;
if (!is_numeric($this->userData['dob'])) {
$this->userData['dob'] = null;
}
}

$user = User::create($this->userData);
Expand All @@ -119,14 +122,14 @@ public function process(): \Illuminate\Database\Eloquent\Model

// invoke OnWebSaveUser event
if ($this->events) {
EvolutionCMS()->invokeEvent("OnUserFormSave", array(
"mode" => "new",
"userid" => $user->getKey(),
"username" => $user->username,
EvolutionCMS()->invokeEvent("OnUserFormSave", [
"mode" => "new",
"userid" => $user->getKey(),
"username" => $user->username,
"userpassword" => $this->userData['clearPassword'],
"useremail" => $user->attributes->email,
"useremail" => $user->attributes->email,
"userfullname" => $user->attributes->fullname
));
]);
}

if ($this->cache) {
Expand All @@ -149,7 +152,7 @@ public function checkRules(): bool
*/
public function validate(): bool
{
$validator = \Validator::make($this->userData, $this->validate, $this->messages);
$validator = \Validator::validate($this->userData, $this->validate, $this->messages);
$this->validateErrors = $validator->errors()->toArray();
return !$validator->fails();
}
Expand Down

0 comments on commit 594ef70

Please sign in to comment.