This commit is contained in:
jf-cbd
2025-02-28 10:50:06 +01:00
parent c9f32311b4
commit e142fba0e6
3 changed files with 120 additions and 101 deletions

View File

@@ -138,7 +138,14 @@ abstract class AttributeDefinition
protected $aCSSClasses;
public function GetType()
private $bIsSensitive = false;
public function IsSensitive()
{
return $this->bIsSensitive;
}
public function GetType()
{
return Dict::S('Core:'.get_class($this));
}
@@ -3775,7 +3782,12 @@ class AttributeFinalClass extends AttributeString
*/
class AttributePassword extends AttributeString implements iAttributeNoGroupBy
{
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
private $bIsSensitive = true;
public function IsSensitive()
{
return $this->bIsSensitive;
}
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
/**
* Useless constructor, but if not present PHP 7.4.0/7.4.1 is crashing :( (N°2329)
@@ -3851,7 +3863,12 @@ class AttributePassword extends AttributeString implements iAttributeNoGroupBy
*/
class AttributeEncryptedString extends AttributeString implements iAttributeNoGroupBy
{
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
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
static $sLibrary = null; // Encryption library used for all encrypted fields
@@ -9243,7 +9260,12 @@ class AttributeSubItem extends AttributeDefinition
*/
class AttributeOneWayPassword extends AttributeDefinition implements iAttributeNoGroupBy
{
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
private $bIsSensitive = true;
public function IsSensitive()
{
return $this->bIsSensitive;
}
const SEARCH_WIDGET_TYPE = self::SEARCH_WIDGET_TYPE_RAW;
/**
* Useless constructor, but if not present PHP 7.4.0/7.4.1 is crashing :( (N°2329)

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,12 @@ class ObjectResult
} catch (Exception $e) { // for special cases like ID
continue;
}
if ($oAttDef instanceof AttributeEncryptedString || $oAttDef instanceof AttributePassword || $oAttDef instanceof AttributeOneWayPassword)
if ($oAttDef->IsSensitive())
{
$this->fields[$sAttCode] = '******';
}
}
}
}*/
}
@@ -198,7 +198,7 @@ class RestResultWithObjects extends RestResult
$this->objects[$sObjKey] = $oObjRes;
}
public function SanitizeContent()
/* public function SanitizeContent()
{
parent::SanitizeContent();
@@ -206,7 +206,7 @@ class RestResultWithObjects extends RestResult
{
$oObjRes->SanitizeContent();
}
}
}*/
}
class RestResultWithRelations extends RestResultWithObjects
@@ -708,7 +708,8 @@ class CoreServices implements iRestServiceProvider, iRestInputSanitizer
$sClass = $aJsonData['class'];
foreach ($aJsonData['fields'] as $sAttCode => $value) {
$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
if ($oAttDef instanceof AttributeEncryptedString || $oAttDef instanceof AttributePassword || $oAttDef instanceof AttributeOneWayPassword) {
var_dump($oAttDef);
if ($oAttDef->IsSensitive()) {
$aJsonData['fields'][$sAttCode] = '*****';
}
}