This commit is contained in:
jf-cbd
2025-02-28 11:00:24 +01:00
parent e142fba0e6
commit 85434578d3
2 changed files with 15 additions and 29 deletions

View File

@@ -112,6 +112,11 @@ interface iAttributeNoGroupBy
//no method, just a contract on implement
}
interface iAttributeSensitive
{
//no method, just a contract on implement
}
/**
* Attribute definition API, implemented in and many flavours (Int, String, Enum, etc.)
*
@@ -138,13 +143,6 @@ abstract class AttributeDefinition
protected $aCSSClasses;
private $bIsSensitive = false;
public function IsSensitive()
{
return $this->bIsSensitive;
}
public function GetType()
{
return Dict::S('Core:'.get_class($this));
@@ -3780,13 +3778,8 @@ class AttributeFinalClass extends AttributeString
*
* @package iTopORM
*/
class AttributePassword extends AttributeString implements iAttributeNoGroupBy
class AttributePassword extends AttributeString implements iAttributeNoGroupBy, iAttributeSensitive
{
private $bIsSensitive = true;
public function IsSensitive()
{
return $this->bIsSensitive;
}
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
/**
@@ -3861,13 +3854,8 @@ class AttributePassword extends AttributeString implements iAttributeNoGroupBy
*
* @package iTopORM
*/
class AttributeEncryptedString extends AttributeString implements iAttributeNoGroupBy
class AttributeEncryptedString extends AttributeString implements iAttributeNoGroupBy, iAttributeSensitive
{
private $bIsSensitive = true;
public function IsSensitive()
{
return $this->bIsSensitive;
}
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
static $sKey = null; // Encryption key used for all encrypted fields
@@ -9258,13 +9246,8 @@ class AttributeSubItem extends AttributeDefinition
/**
* One way encrypted (hashed) password
*/
class AttributeOneWayPassword extends AttributeDefinition implements iAttributeNoGroupBy
class AttributeOneWayPassword extends AttributeDefinition implements iAttributeNoGroupBy, iAttributeSensitive
{
private $bIsSensitive = true;
public function IsSensitive()
{
return $this->bIsSensitive;
}
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
/**

View File

@@ -123,7 +123,7 @@ class ObjectResult
$this->fields[$sAttCode] = $this->MakeResultValue($oObject, $sAttCode, $bExtendedOutput);
}
/* public function SanitizeContent()
public function SanitizeContent()
{
foreach($this->fields as $sAttCode => $value)
{
@@ -132,12 +132,15 @@ class ObjectResult
} catch (Exception $e) { // for special cases like ID
continue;
}
if ($oAttDef->IsSensitive())
if ($oAttDef instanceof iAttributeSensitive)
{
$this->fields[$sAttCode] = '******';
}
{
$this->fields[$sAttCode] = '******';
}
}
}*/
}
}
@@ -709,7 +712,7 @@ class CoreServices implements iRestServiceProvider, iRestInputSanitizer
foreach ($aJsonData['fields'] as $sAttCode => $value) {
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
var_dump($oAttDef);
if ($oAttDef->IsSensitive()) {
if ($oAttDef instanceof iAttributeSensitive) {
$aJsonData['fields'][$sAttCode] = '*****';
}
}