メールアドレスの重複を許可しないようにJoomlas機能をオーバーライドしようとしています。私はこれを取り巻くセキュリティの問題を知っていますが、同じメールアドレスを持つユーザーがいる必要があります。
私のユーザーは主に高齢者で、多くの場合、家庭のメールアドレスを共有しています。
236行目のcheckメソッドのJTableUserクラスでこれをチェックする場所を見つけました
// Check for existing email
$query->clear()
->select($this->_db->quoteName('id'))
->from($this->_db->quoteName('#__users'))
->where($this->_db->quoteName('email') . ' = ' . $this->_db->quote($this->email))
->where($this->_db->quoteName('id') . ' != ' . (int) $this->id);
$this->_db->setQuery($query);
$xid = (int) $this->_db->loadResult();
if ($xid && $xid != (int) $this->id)
{
$this->setError(JText::_('JLIB_DATABASE_ERROR_EMAIL_INUSE'));
return false;
}
コンポーネントレベルでこのクラスをオーバーライドする方法はありますか?
ありがとう
リー
一部のクラスはシステムプラグインで上書きできます。 ここ を参照してください
または、追加フィールドに基づいて独自の認証プラグインを作成できます(そのために使用するユーザープロファイルプラグインで1つを選択できます)。つまり、共有メールを追加フィールドとして保存します。次に、カスタムチェックを実行します)。
これは認証でのみ機能します(その後、Joomlaは通常の、つまり間違ったメールフィールドを使用します)これがあなたが達成したいことかどうかはわかりません。