我一直在为一家小公司使用vTiger CRM来简化管理。到目前为止一切都很好。但我偶然发现了以下问题:
由于某些未知原因,我无法向CRM添加新用户。用户名字段设置为必填字段,但显示为灰色,如下图所示:
我在尝试做什么之前尝试了几件事:
SELECT * FROM vtiger_field WHERE uitype = 4
禁用的字段,但它只返回应该被禁用的字段。不是用户名。在检查元素后,我发现它被设置为readonly=""
。但是,在layouts/vlayout/modules/Users/*.tpl
中搜索任何模板文件都没有显示任何内容。所以我认为一些php或json与javascript的结合正在改变这一点。该元素的完整代码是:
<input id="Users_editView_fieldName_user_name" class="input-large " data-validation-engine="validate[required,funcCall[Vtiger_Base_Validator_Js.invokeValidation]]" name="user_name" value="" readonly="" data-fieldinfo="{"mandatory":true,"presence":true,"quickcreate":false,"masseditable":true,"defaultvalue":false,"type":"string","name":"user_name","label":"Gebruikersnaam"}" type="text">
所以现在我对如何解决这个问题感到有点茫然。有没有人有这方面的经验或知道如何解决它?
答案 0 :(得分:1)
事实证明,用户名字段uitype
设置为106
。在vTigers代码中潜水后,我发现我的一个模块在modules/Users/models/View.php
内发现了这个问题:
/**
* Function to check whether the current field is read-only
* @return <Boolean> - true/false
*/
public function isReadOnly() {
$currentUserModel = Users_Record_Model::getCurrentUserModel();
if(($currentUserModel->isAdminUser() == false && $this->get('uitype') == 98) || $this->get('uitype') == 106 || $this->get('uitype') == 156 || $this->get('uitype') == 115) {
return true;
}
}
如您所见,它会停用uitype = 106
:$this->get('uitype') == 106
的字段。解决方案是简单地从if语句中删除该条件。