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
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 :
v COMPONENTS/COM_USERS/MODELS/FORMS/REGISTRATION.XML
Dále musím zakomentovat:
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.
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"
/>
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"
/>
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:
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
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;
}
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
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é.
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.
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
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