Super_Zica_Man 0 Denunciar post Postado Junho 1, 2011 Pessoal, Sou programador Java, tenho uma aplicação e estou criando um sistema para administrar os clientes e a criação de novos clientes. A documentação do software está em uma área restrita na página que utiliza Joomla. Então, eu preciso para todo novo cliente criar um novo usuário no Joomla para ele ter acesso à documentação. Para fazer essa comunicação eu pensei em fazer uma chamada REST ou WebService à página passando os parametros do novo usuário. Achei essa página que me ajudaria: http://www.fititnt.org/j15/codigo/joomla/funcao-criar-novo-usuario-joomla-15.html Mas, como não tenho conhecimentos em PHP preciso tirar algumas dúvidas, alguém disposto à me ajudar? Criei o arquivo criacao_usuarios.php <?php function CreateNewUser($name, $username, $email, $password, $registerDate = NULL, $usertype = 'Registered', $block = '0', $sendEmail = '1', $gid = '18') { global $db; $db = & JFactory::getDBO(); jimport('joomla.user.helper'); //Make the joomla password hash $salt = JUserHelper::genRandomPassword(32); $crypt = JUserHelper::getCryptedPassword($password, $salt); $joomlapassword = $crypt . ':' . $salt; //Table #__users //Informations about the user $user = new stdClass; $user->id = NULL; $user->name = $name; $user->username = $username; $user->email = $email; $user->password = $joomlapassword; $user->registerDate = registerDate; $user->usertype = $usertype; $user->block = $block; $user->sendEmail = $sendEmail; $user->gid = $gid; if (!$db->insertObject('#__users', $user, 'id')) { echo $db->stderr(); return false; } //Table #__core_acl_aro //Discover what is the last value of value in #__core_acl_aro $query = "SELECT value FROM #__core_acl_aro ORDER BY id DESC LIMIT 1"; $db->setQuery($query); $coreaclarolastvalue = $db->loadResult(); $coreaclaro = new stdClass; $coreaclaro->id = NULL; $coreaclaro->section_value = 'users'; $coreaclaro->value = $coreaclarolastvalue + 1; $coreaclaro->order_value = NULL; $coreaclaro->name = $name; $coreaclaro->hidden = NULL; if (!$db->insertObject('#__core_acl_aro', $coreaclaro, 'id')) { echo $db->stderr(); return false; } //Table #__core_acl_groups_aro_map $coreaclmap = new stdClass; $coreaclmap->group_id = $gid; $coreaclmap->section_value = NULL; $coreaclmap->aro_id = $coreaclaro->id; // maybe just $user->id ? if (!$db->insertObject('#__core_acl_groups_aro_map', $coreaclmap)) { echo $db->stderr(); return false; } $CreateNewUserInfo = array($user->id, $user->name, $user->username, $user->email); return $CreateNewUserInfo; } //This exemple will take data from one post, for example $username = JRequest::getVar('username'); $name = JRequest::getvar('name'); $email = JRequest::getVar('email'); $password = JRequest::getVar('password'); //This code will call your funcion, then register with your data $NewUserInfo = CreateNewUser($name, $username, $email, $password, $registerDate); ?> Recebi o seguinte erro: Fatal error: Class 'JRequest' not found in /home/xxxxx/www/criacao_usuarios.php on line 72 O arquivo .php está no raiz do servidor. Devo colocar dentro de alguma pasta do Joomla? Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Junho 1, 2011 Não fica mais fácil você dar um insert direto na tabela jos_users do joomla ? Você deve ter acesso a ela pelo que comentou. Compartilhar este post Link para o post Compartilhar em outros sites
Super_Zica_Man 0 Denunciar post Postado Junho 1, 2011 Fiz alguns testes hoje a tarde e consegui fazer o INSERT direto no banco usando a senha em MD5 e consegui fazer login usando este usuário. Porém, eu precisava salvar a senha com o salt. Teoricamente está tudo certo, mas quando tento fazer o login diz que a senha é inválida, Sabe se tem algum meio de verificar se o salt que estou gerando é válido? A senha fica assim: MD5(salt + senha) + ":" + salt Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Junho 2, 2011 Putz, aí você me pegou... achei isto aqui, mas nem li direito, espero que sirva http://softwarelivre.org/jonatan/compartilhando/gerando-password-joomla-salt-e-crypt Compartilhar este post Link para o post Compartilhar em outros sites