Skip to content

Commit

Permalink
Merge pull request #1 from modulr/profile
Browse files Browse the repository at this point in the history
Add view edit profile and change password, Create avatar to user
  • Loading branch information
alfredobarron committed Sep 27, 2018
2 parents c7c8e91 + c2c9516 commit 9d6926a
Show file tree
Hide file tree
Showing 25 changed files with 1,469 additions and 268 deletions.
30 changes: 29 additions & 1 deletion README.md
Expand Up @@ -45,6 +45,19 @@ DB_USERNAME=user
DB_PASSWORD=password
```


#### File System
```
// Generate symbolic link to Storage
php artisan storage:link
```

```
// Add params into .env file
FILESYSTEM_DRIVER=public
```


## Run

```
Expand All @@ -69,18 +82,33 @@ https://medium.com/modulr/create-scaffold-with-laravel-5-7-f5ab353dff1c
## Modules

- Auth
- Login
- register
- Remember Password


- Profile
- Edit Name and email
- Change password


- Users & Roles --> _Comming soon..._


## Packages

##### Backend
- [Laravel Authentication](https://laravel.com/docs/5.7/authentication)
- [Laravolt Avatar](https://github.com/laravolt/avatar)


##### Frontend
- [Laravel Frontend](https://laravel.com/docs/5.7/frontend)
- [Vuejs](https://vuejs.org/)
- [Bootstrap 4](https://getbootstrap.com/)
- [Core UI](https://coreui.io/)
- [Fontawesome 5](https://fontawesome.com/)
- [simple-line-icons](http://simplelineicons.com/)
- [vue-toasted](https://shakee93.github.io/vue-toasted/)



Expand Down
10 changes: 9 additions & 1 deletion app/Http/Controllers/Auth/RegisterController.php
Expand Up @@ -8,6 +8,9 @@
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

use Avatar;
use Storage;

class RegisterController extends Controller
{
/*
Expand Down Expand Up @@ -63,10 +66,15 @@ protected function validator(array $data)
*/
protected function create(array $data)
{
return User::create([
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);

$avatar = Avatar::create($user->name)->getImageObject()->encode('png');
Storage::put('avatars/'.$user->id.'/avatar.png', (string) $avatar);

return $user;
}
}
61 changes: 61 additions & 0 deletions app/Http/Controllers/Profile/ProfileController.php
@@ -0,0 +1,61 @@
<?php

namespace App\Http\Controllers\Profile;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;

use Avatar;
use Storage;

use App\User;

class ProfileController extends Controller
{
public function getAuthUser ()
{
return Auth::user();
}

public function updateAuthUser (Request $request)
{
$this->validate($request, [
'name' => 'required|string',
'email' => 'required|email|unique:users,email,'.Auth::id()
]);

$user = User::find(Auth::id());

$user->name = $request->name;
$user->email = $request->email;
$user->save();

$avatar = Avatar::create($user->name)->getImageObject()->encode('png');
Storage::put('avatars/'.$user->id.'/avatar.png', (string) $avatar);

return $user;
}

public function updateAuthUserPassword(Request $request)
{
$this->validate($request, [
'current' => 'required',
'password' => 'required|confirmed',
'password_confirmation' => 'required'
]);

$user = User::find(Auth::id());

if (!Hash::check($request->current, $user->password)) {
return response()->json(['errors' => ['current'=> ['Current password does not match']]], 422);
}

$user->password = Hash::make($request->password);
$user->save();

return $user;
}
}
11 changes: 10 additions & 1 deletion app/User.php
Expand Up @@ -6,6 +6,8 @@
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

use Storage;

class User extends Authenticatable
{
use Notifiable;
Expand All @@ -16,7 +18,7 @@ class User extends Authenticatable
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
'name', 'email', 'password', 'avatar',
];

/**
Expand All @@ -27,4 +29,11 @@ class User extends Authenticatable
protected $hidden = [
'password', 'remember_token',
];

protected $appends = ['avatar_url'];

public function getAvatarUrlAttribute()
{
return Storage::url('avatars/'.$this->id.'/'.$this->avatar);
}
}
3 changes: 2 additions & 1 deletion composer.json
Expand Up @@ -8,7 +8,8 @@
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.7.*",
"laravel/tinker": "^1.0"
"laravel/tinker": "^1.0",
"laravolt/avatar": "^2.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
Expand Down

0 comments on commit 9d6926a

Please sign in to comment.