Passed
Push — dev5 ( 8481ee...a622eb )
by Ron
03:52 queued 01:34
created

SetUserDetails   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Test Coverage

Coverage 88.57%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 35
c 1
b 0
f 0
dl 0
loc 75
ccs 31
cts 35
cp 0.8857
rs 10
wmc 8

3 Methods

Rating   Name   Duplication   Size   Complexity  
A updateUserDetails() 0 29 3
A updateUserNotifications() 0 17 2
A updateUserPassword() 0 18 3
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')) : null;
84
85 2
        User::find($userID)->update([
86 2
            'password' => bcrypt($request->newPass),
87 2
            'password_expires' => $newExpire,
88
        ]);
89
90 2
        Log::notice('Password has been changed for User ID '.$userID.' by '.Auth::user()->full_name);
91 2
        return true;
92
    }
93
}
94