hasMany('FireflyIII\Models\Account'); } /** * Alias to eloquent many-to-many relation's attach() method. * * Full credit goes to: https://github.com/Zizaco/entrust * * @param mixed $role */ public function attachRole($role) { if (is_object($role)) { $role = $role->getKey(); } if (is_array($role)) { $role = $role['id']; } $this->roles()->attach($role); } /** * @return HasMany */ public function attachments(): HasMany { return $this->hasMany('FireflyIII\Models\Attachment'); } /** * @return HasMany */ public function bills(): HasMany { return $this->hasMany('FireflyIII\Models\Bill'); } /** * @return HasMany */ public function budgets(): HasMany { return $this->hasMany('FireflyIII\Models\Budget'); } /** * @return HasMany */ public function categories(): HasMany { return $this->hasMany('FireflyIII\Models\Category'); } /** * @return HasMany */ public function exportjobs(): HasMany { return $this->hasMany('FireflyIII\Models\ExportJob'); } /** * Checks if the user has a role by its name. * * Full credit goes to: https://github.com/Zizaco/entrust * * @param string|array $name Role name or array of role names. * @param bool $requireAll All roles in the array are required. * * @return bool */ public function hasRole($name, $requireAll = false) { if (is_array($name)) { foreach ($name as $roleName) { $hasRole = $this->hasRole($roleName); if ($hasRole && !$requireAll) { return true; } elseif (!$hasRole && $requireAll) { return false; } } // If we've made it this far and $requireAll is FALSE, then NONE of the roles were found // If we've made it this far and $requireAll is TRUE, then ALL of the roles were found. // Return the value of $requireAll; return $requireAll; } else { foreach ($this->roles as $role) { if ($role->name == $name) { return true; } } } return false; } /** * @return HasManyThrough */ public function piggyBanks(): HasManyThrough { return $this->hasManyThrough('FireflyIII\Models\PiggyBank', 'FireflyIII\Models\Account'); } /** * @return HasMany */ public function preferences(): HasMany { return $this->hasMany('FireflyIII\Models\Preference'); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function roles(): BelongsToMany { return $this->belongsToMany('FireflyIII\Models\Role'); } /** * @return HasMany */ public function ruleGroups(): HasMany { return $this->hasMany('FireflyIII\Models\RuleGroup'); } /** * @return HasMany */ public function rules(): HasMany { return $this->hasMany('FireflyIII\Models\Rule'); } /** * @return HasMany */ public function tags(): HasMany { return $this->hasMany('FireflyIII\Models\Tag'); } /** * @return HasMany */ public function transactionjournals(): HasMany { return $this->hasMany('FireflyIII\Models\TransactionJournal'); } /** * @return HasManyThrough */ public function transactions(): HasManyThrough { return $this->hasManyThrough('FireflyIII\Models\Transaction', 'FireflyIII\Models\TransactionJournal'); } }