Passed
Push — dev5 ( 5adb95...c3531a )
by Ron
09:38
created

SetUserDetails   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Test Coverage

Coverage 88.89%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 36
c 1
b 0
f 0
dl 0
loc 76
ccs 32
cts 36
cp 0.8889
rs 10
wmc 8

3 Methods

Rating   Name   Duplication   Size   Complexity  
A updateUserPassword() 0 19 3
A updateUserDetails() 0 29 3
A updateUserNotifications() 0 17 2
1
<?php
2
3
namespace App\Domains\Users;
4
5
use Illuminate\Http\Request;
6
use Illuminate\Support\Facades\Log;
7
use Illuminate\Support\Facades\Auth;
8
9
use App\Http\Requests\UserBasicAccountRequest;
10
use App\Http\Requests\UserChangePasswordRequest;
11
use App\Http\Requests\UserNotificationSettingsRequest;
12
13
use Carbon\Carbon;
14
15
use App\User;
16
use App\UserSettings;
17
18
class SetUserDetails
19
{
20
    protected $userID;
21
22
    //  Update the user's basic settings
23 2
    public function updateUserDetails(UserBasicAccountRequest $request, $userID = null)
24
    {
25 2
        if(!$userID)
26
        {
27 2
            $userID = Auth::user()->user_id;
28
        }
29
30 2
        if(isset($request->username))
31
        {
32 2
            $details = User::find($userID)->update(
33
            [
34 2
                'username'   => $request->username,
35 2
                'first_name' => $request->first_name,
36 2
                'last_name'  => $request->last_name,
37 2
                'email'      => $request->email
38
            ]);
39
        }
40
        else
41
        {
42
            $details = User::find($userID)->update(
43
            [
44
                'first_name' => $request->first_name,
45
                'last_name'  => $request->last_name,
46
                'email'      => $request->email
47
            ]);
48
        }
49
50 2
        Log::notice('User ID '.$userID.' has been updated by '.Auth::user()->full_name.'.  Details - ', array($details));
51 2
        return true;
52
    }
53
54
    //  Update the user's email notification settings
55 2
    public function updateUserNotifications(UserNotificationSettingsRequest $request, $userID = null)
56
    {
57 2
        if(!$userID)
58
        {
59 2
            $userID = Auth::user()->user_id;
60
        }
61
62 2
        $details = UserSettings::where('user_id', Auth::user()->user_id)->update(
63
        [
64 2
            'em_tech_tip'     => $request->em_tech_tip,
65 2
            'em_file_link'    => $request->em_file_link,
66 2
            'em_notification' => $request->em_notification,
67 2
            'auto_del_link'   => $request->auto_del_link,
68
        ]);
69
70 2
        Log::notice('User ID '.$userID.' notification settings have been updated by '.Auth::user()->full_name.'.  Details - ', array($details));
71 2
        return true;
72
    }
73
74
    //  Update the user's password
75 2
    public function updateUserPassword(Request $request, $userID = null)
76
    {
77 2
        if(!$userID)
78
        {
79 2
            $userID = Auth::user()->user_id;
80
        }
81
82
        //  Determine if there is a new password expire's date
83 2
        $newExpire = config('auth.passwords.settings.expire') != null ?
84 2
            Carbon::now()->addDays(config('auth.passwords.settings.expire')) :
85 2
            null;
86
87 2
        User::find($userID)->update([
88 2
            'password' => bcrypt($request->newPass),
89 2
            'password_expires' => $newExpire,
90
        ]);
91
92 2
        Log::notice('Password has been changed for User ID '.$userID.' by '.Auth::user()->full_name);
93 2
        return true;
94
    }
95
}
96