Přihlásit se

Joomla 5.2.2 Security & Bugfix Release

Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.

Odebrat Jméno z registrace

29. dub 2015 19:33 #121677
Odebrat Jméno z registrace od Vladimír Kantor
Začátečník
Ahoj,
chci se zeptat.
V registračním formuláři na můj web musí uživatel vyplňovat mimo username také name.
"Name" nemám nikde na webu použitý a nepotřebuji ho.
Rád bych o regulerně z joomly odebral.
Ale raději se zeptám na postup, protože si nejsem zcela jistý.

Vím,že musím zakomentovat :
Code:
<field name="name" type="text" description="COM_USERS_REGISTER_NAME_DESC" filter="string" label="COM_USERS_REGISTER_NAME_LABEL" message="COM_USERS_REGISTER_NAME_MESSAGE" required="true" size="30" />
v COMPONENTS/COM_USERS/MODELS/FORMS/REGISTRATION.XML

Dále musím zakomentovat:
Code:
<field name="name" type="text" class="inputbox" description="COM_USERS_USER_FIELD_NAME_DESC" label="COM_USERS_USER_FIELD_NAME_LABEL" required="true" size="30" />
v ADMINISTRATOR/COMPONENTS/COM_USERS/MODELS/FORMS/USER.XML

Tím deaktivuji vůbec volbu Jména zadat.
Podobně zneaktivním i výpis Jména v profilu.

Ovšem někde jětě probíha validace registrace a ta nedovolí registrovat uživatele bez Jména (Name)
A to je můj dotaz - s tím si nevím rady, který soubor má tuhle validaci na starosti? Prostě aby mi prošla registrace beze jména, bude pouze username, mail a heslo, nic více nepotřebuji a nechci s tím obtěžovat uživatele.

Moc děkuji za pomoc.

29. dub 2015 20:03 #121678
Odpověď od Vladimír Kantor
Začátečník
Už jsem na to asi přišel :) ... Je to malý pěkný hack ...
Vím, že se to tak nedělá, už kvůli aktualizacím,ale web jede na poslední verzi joomly 2.5 a je již tak překopán,že by stejně nešel aktualizovat.

Takže jsem dále musel editovat:
Code:
public function check() { $this->name=$this->username; // Validate user information if (trim($this->name) == '') { $this->setError(JText::_('JLIB_DATABASE_ERROR_PLEASE_ENTER_YOUR_NAME')); return false; }
v libraries/joomla/database/table/user.php na řádku 184 po public function check()
kde jsou dvě možnosti, bud celý if zakomentovat a políčko name v db zůstane prázdné a nebo před if dopsat že
$this->name=$this->username; a tím obě buňky v db budou obsahovat stejné varianty ...

Zvolil jsem tu druhou možnost,protože nikdy nevím,kdy se zase bude name hodit :)

29. dub 2015 21:45 #121679
Odpověď od Vladimír Kantor
Začátečník
No a samozřejmě je vhodné skrýt Jméno i v editaci profilu :) .
v COMPONENTS/COM_USERS/MODELS/FORMS/PROFILE.XML

29. dub 2015 22:46 #121681
Odpověď od Cony
Moderátor
Ono by se to dalo vyřešit i bez hacku, pomocí pluginu. Od Joomly verze 2.5 už existují funkce, které by to umožnili.
Druhá věc je ale, že budete bojovat i s šablonami, které často pole pro registrační formulář vykreslují "natvrdo", a třeba is dalšími modulami, komponentami apod. Zbavit se Jména (nebo uživatelského jména) není v Joomle, pokud v ní máte další rozšíření, úplně jednoduché.

30. dub 2015 07:17 #121683
Odpověď od Houbák
Zkušený uživatel
Myslím, že z hlediska bezpečnosti není dobré na stránkách zobrazovat username. Případnému útočníkovi potom stačí "pouze" uhodnout heslo.
Ale zpět k vašemu dotazu. Hackem Joomly bych to také neřešil. Dalo by se to podle mě řešit skrytím daného formulářového pole v registračním formuláři a aby prošla validace, tak pomocí javaskriptu zkopírovat username do políčka name.

30. dub 2015 09:35 #121685
Odpověď od Vladimír Kantor
Začátečník
Vždyť ano :) ... Uvedený postup v podstatě hodnotu Name pouze skryje nikoli odstraní a do samotného sloupce Name v databázi se automaticky nakopíruje Username. :) ... žádný další modul, ani šablona v tomto případě Name nevyžaduje. Jedná se o zavedený web a šablona se měnit nebude a je to upravená základní Beez20... A jak říkám, těch věcí co už je v tomto webu upraveno je spousta,takže jsem si cestu aktualizace odřízl už dávno.
Mimochodem řekl bych, že minimálně na 50% webech se přihlašuje pomocí username a nikoli name a to se zobrazuje ve forech atd. Ani zde tomu není jinak :) ... A v té druhé polovině se loguje pomocí mailu, což mě osobně příjde lepší.

Každopádně máte pravdu, že to není úplně správný postup. Souhlas ... Nicméně funguje :)

Powered by Fórum