Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdsExec::Adduser | (hzChain&,hzHttpEvent*,) |
Declared in file: hzDissemino.h
Defined in file : hdsExec.cpp
Function Logic:
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 ; }