blob: 540ec7717337fe15da7dec79d1f554f6a1732a03 [file] [log] [blame]
<?php
namespace LdapRecord\Models\ActiveDirectory\Relations;
use LdapRecord\Models\Model;
use LdapRecord\Models\Relations\HasOne;
class HasOnePrimaryGroup extends HasOne
{
/**
* Get the foreign model by the given value.
*
* @param string $value
*
* @return Model|null
*/
protected function getForeignModelByValue($value)
{
return $this->query->findBySid(
$this->getParentModelObjectSid()
);
}
/**
* Get the foreign value from the given model.
*
* Retrieves the last RID from the models Object SID.
*
* @param Model $model
*
* @return string
*/
protected function getForeignValueFromModel(Model $model)
{
$objectSidComponents = explode('-', $model->getConvertedSid());
return end($objectSidComponents);
}
/**
* Get the parent relationship models converted object sid.
*
* @return string
*/
protected function getParentModelObjectSid()
{
return preg_replace(
'/\d+$/',
$this->parent->getFirstAttribute($this->relationKey),
$this->parent->getConvertedSid()
);
}
}