我使用与LDAP数据库集成的Yii 1.x,并在开发用于外部用户访问IT资源的功能时:域(用于验证Windows / Linux外部用户)和Wi-fi(使用权限),或两者兼有。
我遇到了需要删除我先前在模型中设置的属性的情况:出于安全原因,我在模型中填充了所有数据,这些数据均应包含主要标志,例如 sambaAcctFlags,disabledAccount和shadowExpire 谁可以真正访问资源:Domain中的SAMBA和Wi-fi中的RUCKUS。
主要问题是,当我创建模型记录时,我设置了属性 disabledAccount -当该属性不存在时,它授予对Wi-fi的访问权限,但是当其设置时,RUCKUS拒绝身份验证-现在我当用户未选中复选框时,无法从模型中删除此值,因此我尝试使用unset($model->disabledAccount)
,但此方法不起作用。我已经看到一些建议,将变量替换为空值,但使用我的LDAP Yii扩展名,在保存disabledAccount属性时,这将引发LDAP错误。
任何光能做什么?
$model->shadowexpire = time();
$model->sambaAcctFlags = '[UD]';
$model->disabledaccount = date('YmdHis\Z');
foreach ($_POST['checkbox_acessos'] as $access ) {
switch ($access) {
case 'C': // Verify if the user has set Domain Access to user
$model->sambaAcctFlags = '[U]'; //Change flag from Deactivate to Activate
break;
case 'W': // Verify if the user has set Wi-fi to user
unset($model->disabledaccount); //this is the main problem**
echo "Wi-fi Granted!";
break;
}
}
$model->shadowExpire = strtotime($validade->format('d-m-Y H:i:s'));
// Date when Expire Unix based systems access
答案 0 :(得分:0)
无论如何,我无法正确解决您的问题,您的句子不完整
如果要在数据库中保存之前定义的默认值,请用unset
替换unsetAttributes()
方法。
在这种情况下:
$model->unsetAttributes(['disabledAccount']);