/** * Aplicar. * * @param Builder $builder * @param Model $model */ public function apply(Builder $builder, Model $model) { // Verificar qual o inquilino informado $inquilino_id = \Auth::check() ? \Auth::user()->{Table::tenantField()} : null; if (is_null($inquilino_id) != true) { $builder->where(Table::keyAttr(), $inquilino_id); } }
/** * Aplicar. * * @param Builder $builder * @param Model $model */ public function apply(Builder $builder, Model $model) { if (isset($model->filterLogged) && $model->filterLogged == false) { return; } // Verificar qual o inquilino informado $inquilino_id = \Auth::check() ? \Auth::user()->{Table::tenantField()} : null; if (is_null($inquilino_id) != true) { $builder->where(Table::keyAttr(), $inquilino_id); } }
/** * Aplicar. * * @param Builder $builder * @param Model $model */ public function apply(Builder $builder, Model $model) { // Verificar se deve filtrar o inquilino if (isset($model->multTenant) && $model->multTenant == true) { // Verificar se esta logado if (is_null(\Auth::id())) { return; } // Verificar qual o inquilino informado $inquilino_id = \Auth::user()->{Table::tenantField()}; if (is_null($inquilino_id)) { $builder->whereNull(Table::tenantField()); } else { $builder->where(Table::tenantField(), $inquilino_id); } } }
/** * Boot do trait. */ public static function bootMultTenantModel() { // Adicionar scopo static::addGlobalScope(new TenantScope()); // Informar tenant static::saving(function ($model) { if (isset($model->multTenant) && $model->multTenant == true) { // Verificar se inquilino já foi informado if (array_key_exists(Table::tenantField(), $model->attributes)) { return; } // Verificar se usuário esta logado if (\Auth::check() != true) { error('Usuário não esta logado'); } // Setar inquilino $model->{Table::tenantField()} = \Auth::user()->{Table::tenantField()}; } }); }
/** * Carregar ondemand o objeto Tenant da classe mult-tenant. * @return mixed|null */ public function getTenantAttribute() { // Verificar se eh mult inquilino if ($this->multTenant != true) { return null; } // Verificar se jah foi carregado if (is_null($this->tenantObj) != true) { return $this->tenantObj; } // Veriifcar se foi definido o tenant Model $model = config('database.models.tenant', '\\NetForce\\Auth\\Models\\Inquilino'); if (is_null($model)) { error('Não foi configurado a classe do Tenant. (configs.database.models.tenant'); } // Carregar id do tenant $tenant_id = $this->{Table::tenantField()}; if (is_null($tenant_id)) { return null; } return $this->tenantObj = app()->make($model, [$tenant_id]); }