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