id do usuário logado Boa noite galera! preciso inserir o 'id' do usuário logado em algumas tabelas para controle de registros... sei como pegar o 'login' isso porque no momento do logim o mesmo é gravado na 'TSession', mas pelo que vi aqui o id não é gravado na TSession, como faço para recupera-lo? desde já agradeço!...
BI
id do usuário logado  
Fechado
Boa noite galera!
preciso inserir o 'id' do usuário logado em algumas tabelas para controle de registros...
sei como pegar o 'login' isso porque no momento do logim o mesmo é gravado na 'TSession', mas pelo que vi aqui o id não é gravado na TSession, como faço para recupera-lo?

desde já agradeço!

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (7)


FC

ta usando o template 2 ?

na função onLogin() da classe LoginForm é salvo as seções nessa parte

TSession::setValue('logged', TRUE);
TSession::setValue('login', $data->login);//login usuario
TSession::setValue('username', $user->name);//nome usuario
TSession::setValue('usernameid', $user->id);//id usuario

ok...
BI

Opa,
estou usando o template 2, a função onLogin() da classe LoginForm não recupera o 'id'.
 
  1. <?php
  2. function onLogin()
  3. {
  4. try
  5. {
  6. TTransaction::open('sqlserver');
  7. $data = $this->form->getData('StdClass');
  8. $this->form->validate();
  9. $user = SystemUser::autenticate( $data->login, $data->password );
  10. if ($user)
  11. {
  12. $programs = $user->getPrograms();
  13. $programs['LoginForm'] = TRUE;
  14. TSession::setValue('logged', TRUE);
  15. TSession::setValue('login', $data->login);
  16. TSession::setValue('username', $user->name);
  17. TSession::setValue('frontpage', '');
  18. TSession::setValue('programs',$programs);
  19. $frontpage = $user->frontpage;
  20. if ($frontpage instanceof SystemProgram AND $frontpage->controller)
  21. {
  22. TApplication::gotoPage($frontpage->controller); // reload
  23. TSession::setValue('frontpage', $frontpage->controller);
  24. }
  25. else
  26. {
  27. TApplication::gotoPage('EmptyPage'); // reload
  28. TSession::setValue('frontpage', 'EmptyPage');
  29. }
  30. }
  31. TTransaction::close();
  32. }
  33. catch (Exception $e)
  34. {
  35. new TMessage('error',$e->getMessage());
  36. TSession::setValue('logged', FALSE);
  37. TTransaction::rollback();
  38. }
  39. }
  40. ?>
BI

Realmente é só adicionar a linha
 
  1. <?php TSession::setValue('login_id', $user->id); ?>
e o ID será armazenado na sessão.
Agora surge outro problema, quero inserir o ID em uma tabela de registro...
Fiz o seguinte, no formulário usei um THidden para recuperar o 'lingin_id', mas só funciona na edição do dos dados. porque quando clica em 'novo', limpa o formulário ai o THidden não pega o 'login_id'.

alguem tem uma sugestão melhor?

desde já agradeço.
FC

no onSave do form vc salva direto da seção não precisa passar pelo Thidden

$object->campodasuatabela = TSession::getValue('login_id');

$object->store();
BI

Obrigado, deu certo!
RA

Olá Galera, iniciando com Adiant framework, tentei fazer desta forma
<?
$customer->User_id = TSession::getValue('login_id');
?>

porém ocorre erro tando gravar (onsave):

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'User_id' cannot be null
GJ

Tente isso:
$customer->User_id = TSession::getValue('userid');