Return TypeFunction nameArguments
hzEcodehdsExec::Adduser(hzChain&,hzHttpEvent*,)

Declared in file: hzDissemino.h
Defined in file : hdsExec.cpp

Function Logic:

0:START 1:!m_pApp 2:hzexit 3:!m_pApp->m_ADP.m_pClassSubscriber 4:Return hzerr(E_NOINIT,Subscriber Class not initialized) 5:!m_pApp->m_ADP.m_pReposSubscriber 6:Return hzerr(E_NOINIT,Subscriber Repos not initialized) 7:userclass username password emaStr 8:!userclass 9:Return hzerr(E_NOINIT,No user class specified) 10:!username 11:Return hzerr(E_NOINIT,No user name specified) 12:!password 13:Return hzerr(E_NOINIT,No user password specified) 14:!emaStr 15:Return hzerr(E_NOINIT,No user email specified) 16:hdbADP::GetPureClass pUserClass 17:!pUserClass 18:Return hzerr(E_NOTFOUND,No user class: Class %s not known as a class\n,*userclass) 19:hdbADP::GetObjRepos pUserRepos 20:!pUserRepos 21:Return hzerr(E_NOTFOUND,No user repository for class %s\n,*userclass) 22:hdbObject::Init hdbObject::Init hdsApp::PcEntConv rc 23:rc!=E_OK 24:Return hzwarn(rc,Error during conversion of username %s,*username) 25:hzAtom::Str username hdbObjRepos::Exists rc 26:rc!=E_OK 27:Return hzwarn(rc,Error during lookup of user %s,*username) 28:subsObjId 29:Return hzwarn(E_DUPLICATE,User %s already exists,*username) 30:GetThreadLogger pLog hdbObject::SetMbrValue hzLogger::Log hdsApp::PcEntConv rc 31:rc!=E_OK 32:Return hzwarn(rc,Error during conversion of password %s,*ema) 33:hzAtom::Str ema hdbObject::SetMbrValue hzAtom::Str hzLogger::Log hdsApp::PcEntConv rc 34:rc!=E_OK 35:Return hzwarn(rc,Error during conversion of password %s,*password) 36:hzAtom::Str hdbObject::SetMbrValue hzAtom::Str hzLogger::Log hdbObjRepos::Count atom hdbObject::SetValue hzAtom::Str hzLogger::Log 37:Return E_OK

Function body:

hzEcode hdsExec::Adduser (hzChain& errorReport, hzHttpEvent* pE)
{
   _hzfunc("hdsExec::Adduser") ;
   hzList  <hzPair>::Iter  pi ;
   const hdbClass*     pUserClass ;
   hdbObject           objSubscriber ;
   hdbObject           userObj ;
   hzAtom              atom ;
   hzChain             err ;
   hzLogger*           pLog ;
   hdbObjRepos*        pUserRepos ;
   hzPair              pair ;
   hzEmaddr            ema ;
   hzString            userclass ;
   hzString            username ;
   hzString            password ;
   hzString            emaStr ;
   hzString            S ;
   uint32_t            subsObjId ;
   hzEcode             rc = E_OK ;
   /*
   **  ** Check basics
   **      */
   if (!m_pApp)
       hzexit(E_NOINIT, "No Application") ;
   if (!m_pApp->m_ADP.m_pClassSubscriber)  return hzerr(E_NOINIT, "Subscriber Class not initialized") ;
   if (!m_pApp->m_ADP.m_pReposSubscriber)  return hzerr(E_NOINIT, "Subscriber Repos not initialized") ;
   userclass   = m_pApp->m_ExecParams[m_FstParam] ;
   username    = m_pApp->m_ExecParams[m_FstParam+1];
   password    = m_pApp->m_ExecParams[m_FstParam+2];
   emaStr      = m_pApp->m_ExecParams[m_FstParam+3];
   if (!userclass) return hzerr(E_NOINIT, "No user class specified") ;
   if (!username)  return hzerr(E_NOINIT, "No user name specified") ;
   if (!password)  return hzerr(E_NOINIT, "No user password specified") ;
   if (!emaStr)    return hzerr(E_NOINIT, "No user email specified") ;
   pUserClass = m_pApp->m_ADP.GetPureClass(userclass) ;
   if (!pUserClass)
       return hzerr(E_NOTFOUND, "No user class: Class %s not known as a class\n", *userclass) ;
   pUserRepos = m_pApp->m_ADP.GetObjRepos(userclass) ;
   if (!pUserRepos)
       return hzerr(E_NOTFOUND, "No user repository for class %s\n", *userclass) ;
   objSubscriber.Init(m_pApp->m_ADP.m_pClassSubscriber) ;
   userObj.Init(pUserClass) ;
   /*
   **  ** Set up SUBSCRIBER object
   **      */
   rc = m_pApp->PcEntConv(atom, username, pE) ;
   if (rc != E_OK)
       return hzwarn(rc, "Error during conversion of username %s", *username) ;
   username = atom.Str() ;
   rc = m_pApp->m_ADP.m_pReposSubscriber->Exists(subsObjId, m_pApp->m_ADP.m_pMbr_Subscriber_username, atom) ;
   if (rc != E_OK)
       return hzwarn(rc, "Error during lookup of user %s", *username) ;
   if (subsObjId)
       return hzwarn(E_DUPLICATE, "User %s already exists", *username) ;
   pLog = GetThreadLogger() ;
   objSubscriber.SetMbrValue(m_pApp->m_ADP.m_pMbr_Subscriber_username, username) ;
   pLog->Log("Set subscriber username to %s\n", *username) ;
   rc = m_pApp->PcEntConv(atom, emaStr, pE) ;
   if (rc != E_OK)
       return hzwarn(rc, "Error during conversion of password %s", *ema) ;
   ema = atom.Str() ;
   objSubscriber.SetMbrValue(m_pApp->m_ADP.m_pMbr_Subscriber_email, ema) ;
   pLog->Log("Set subscriber email %s to %s\n", *ema, *atom.Str()) ;
   rc = m_pApp->PcEntConv(atom, password, pE) ;
   if (rc != E_OK)
       return hzwarn(rc, "Error during conversion of password %s", *password) ;
   objSubscriber.SetMbrValue(m_pApp->m_ADP.m_pMbr_Subscriber_userpass, atom.Str()) ;
   pLog->Log("Set subscriber password %s to %s\n", *password, *atom.Str()) ;
   atom = m_pApp->m_ADP.m_pReposSubscriber->Count() + 1;
   objSubscriber.SetValue(m_pApp->m_ADP.m_pMbr_Subscriber_UID, atom) ;
   pLog->Log("subscriber UID = %s\n", *atom.Str()) ;
   return E_OK ;
}