- Added a new ObjectType annotation.
- Computer entity added - Fixed some problem related to filter and repository of LDAP specific methods.
This commit is contained in:
1 parent
1b11917bf5
commit
a0363ebb71
5 files changed
+67
-5
No files matched your search
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Ulmus\Ldap\Annotation\Classes;
|
||||||
|
|
||||||
|
class ObjectType implements \Ulmus\Annotation\Annotation {
|
||||||
|
|
||||||
|
public string $type;
|
||||||
|
|
||||||
|
public function __construct($type = null)
|
||||||
|
{
|
||||||
|
if ( $type !== null ) {
|
||||||
|
$this->type = $type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+44
-1
@@ -1,10 +1,53 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
namespace Ulmus\Ldap\Entity;
|
namespace Ulmus\Ldap\Entity;
|
||||||
|
|
||||||
|
use Ulmus\Ldap\Entity\Field\{ Datetime };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ObjectClass('computer')
|
||||||
|
*/
|
||||||
class Computer
|
class Computer
|
||||||
{
|
{
|
||||||
|
use \Ulmus\Ldap\EntityTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field
|
||||||
|
*/
|
||||||
|
public string $samaccountname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field
|
||||||
|
*/
|
||||||
|
public string $name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field
|
||||||
|
*/
|
||||||
|
public string $description;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field('DNSHostName')
|
||||||
|
*/
|
||||||
|
public string $hostname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field
|
||||||
|
*/
|
||||||
|
public string $location;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field
|
||||||
|
*/
|
||||||
|
public string $operatingSystem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field
|
||||||
|
*/
|
||||||
|
public string $operatingSystemServicePack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Field
|
||||||
|
*/
|
||||||
|
public string $operatingSystemVersion;
|
||||||
}
|
}
|
||||||
+1
-1
@@ -4,7 +4,7 @@ namespace Ulmus\Ldap;
|
|||||||
|
|
||||||
use Ulmus\{ Ulmus, EventTrait, Query, Common\EntityResolver, Common\EntityField };
|
use Ulmus\{ Ulmus, EventTrait, Query, Common\EntityResolver, Common\EntityField };
|
||||||
|
|
||||||
use Ulmus\Ldap\Annotation\Classes\{ ObjectClass, };
|
use Ulmus\Ldap\Annotation\Classes\{ ObjectClass, ObjectType, };
|
||||||
|
|
||||||
trait EntityTrait {
|
trait EntityTrait {
|
||||||
use \Ulmus\EntityTrait;
|
use \Ulmus\EntityTrait;
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class Filter extends Fragment {
|
|||||||
$return = $this->content ?: $this->content = implode("", array_filter([
|
$return = $this->content ?: $this->content = implode("", array_filter([
|
||||||
$this->field,
|
$this->field,
|
||||||
$this->operator(),
|
$this->operator(),
|
||||||
$this->operator === Filter::OPERATOR_LIKE ? "*{$this->value}*" : $value,
|
$this->operator === Filter::OPERATOR_LIKE ? str_replace('%', '*', $this->value) : $value,
|
||||||
]));
|
]));
|
||||||
|
|
||||||
return $this->applyOperator($return, "");
|
return $this->applyOperator($return, "");
|
||||||
|
|||||||
+6
-2
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Ulmus\Ldap;
|
namespace Ulmus\Ldap;
|
||||||
|
|
||||||
use Ulmus\Ldap\Annotation\Classes\ObjectClass;
|
use Ulmus\Ldap\Annotation\Classes\{ ObjectClass, ObjectType };
|
||||||
use Ulmus\{EntityCollection, Ulmus, SearchRequest, Query};
|
use Ulmus\{EntityCollection, Ulmus, SearchRequest, Query};
|
||||||
use Ulmus\Annotation\Property\{ Where, Having, Relation, Join, WithJoin, Relation\Ignore as RelationIgnore };
|
use Ulmus\Annotation\Property\{ Where, Having, Relation, Join, WithJoin, Relation\Ignore as RelationIgnore };
|
||||||
use Ulmus\Common\EntityResolver;
|
use Ulmus\Common\EntityResolver;
|
||||||
@@ -27,10 +27,14 @@ class Repository extends \Ulmus\Repository
|
|||||||
$this->select(array_keys($this->entityResolver->fieldList(EntityResolver::KEY_COLUMN_NAME)));
|
$this->select(array_keys($this->entityResolver->fieldList(EntityResolver::KEY_COLUMN_NAME)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( null !== $objectClass = $this->entityResolver->getAnnotationFromClassname( ObjectClass::class ) ) {
|
if ( null !== $objectClass = $this->entityResolver->getAnnotationFromClassname( ObjectClass::class, false ) ) {
|
||||||
$this->where('objectclass', $objectClass->type);
|
$this->where('objectclass', $objectClass->type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( null !== $objectClass = $this->entityResolver->getAnnotationFromClassname( ObjectType::class, false ) ) {
|
||||||
|
$this->where('objecttype', $objectClass->type);
|
||||||
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user