Pony.fm/app/models/Entities/User.php

60 lines
1.5 KiB
PHP
Raw Normal View History

2013-07-25 23:33:04 +02:00
<?php
namespace Entities;
2013-07-27 02:15:07 +02:00
use Cover;
use Gravatar;
2013-07-25 23:33:04 +02:00
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
2013-07-28 20:50:02 +02:00
use Illuminate\Support\Facades\URL;
2013-07-28 23:51:35 +02:00
use Illuminate\Support\Str;
2013-07-28 20:50:02 +02:00
use Ratchet\Wamp\Exception;
2013-07-25 23:33:04 +02:00
class User extends \Eloquent implements UserInterface, RemindableInterface {
protected $table = 'users';
protected $hidden = ['password_hash', 'password_salt', 'bio'];
2013-07-27 02:15:07 +02:00
public function avatar() {
return $this->belongsTo('Entities\Image');
}
2013-07-28 23:51:35 +02:00
public function getUrlAttribute() {
return URL::to('/' . $this->slug);
}
2013-07-25 23:33:04 +02:00
public function getAuthIdentifier() {
return $this->getKey();
}
public function getAuthPassword() {
return $this->password_hash;
}
public function getReminderEmail() {
return $this->email;
}
2013-07-27 02:15:07 +02:00
2013-07-28 23:51:35 +02:00
public function setDisplayName($value) {
$this->attributes['display_name'] = $value;
$this->attributes['slug'] = Str::slug($value);
}
2013-07-28 20:50:02 +02:00
public function getAvatarUrl($type = Image::NORMAL) {
2013-07-27 02:15:07 +02:00
if (!$this->uses_gravatar)
2013-07-28 20:50:02 +02:00
return $this->avatar->getUrl();
2013-07-27 02:15:07 +02:00
$email = $this->gravatar;
if (!strlen($email))
$email = $this->email;
return Gravatar::getUrl($email, Image::$ImageTypes[$type]['width']);
}
2013-07-28 20:50:02 +02:00
public function getAvatarFile($type = Image::NORMAL) {
2013-07-27 02:15:07 +02:00
if ($this->uses_gravatar)
2013-07-28 20:50:02 +02:00
throw new Exception('Cannot get avatar file if this user is configured to use Gravatar!');
2013-07-27 02:15:07 +02:00
2013-07-28 20:50:02 +02:00
$imageType = Image::$ImageTypes[$type];
return URL::to('t' . $this->id . '/cover_' . $imageType['name'] . '.png?' . $this->cover_id);
2013-07-27 02:15:07 +02:00
}
2013-07-25 23:33:04 +02:00
}