Return Type | Function name | Arguments |
---|---|---|
hzEcode | hdsExec::Logon | (hzChain&,hzHttpEvent*,) |
Declared in file: hzDissemino.h
Defined in file : hdsExec.cpp
Function Logic:
Function body:
hzEcode hdsExec::Logon (hzChain& errorReport, hzHttpEvent* pE) { _hzfunc("hdsExec::Logon") ; hdbObject uObj ; hzAtom atom ; hdsInfo* pInfo ; hdbObjRepos* pRepos ; hzString tmpStr ; hzString m_Uname ; hzString unam ; uint32_t bAccess ; uint32_t objId ; hzEcode rc ; m_Uname = m_pApp->m_ExecParams[m_FstParam] ; pInfo = (hdsInfo*) pE->Session() ; if (pInfo) { errorReport.Printf("Cannot logon user implied by %s as there is already a session in place\n", *m_Uname) ; return E_NOTFOUND ; } if (m_Uname[0]!= CHAR_PERCENT) unam = m_Uname ; else { rc = m_pApp->PcEntConv(atom, m_Uname, pE) ; if (rc != E_OK) { errorReport.Printf("Cannot logon user as %s does not evaluate\n", *m_Uname) ; return E_NOTFOUND ; } unam = atom.Str() ; } errorReport.Printf("Trying username %s\n", *unam) ; rc = m_pApp->m_ADP.m_pReposSubscriber->Exists(objId, m_pApp->m_ADP.m_pMbr_Subscriber_username, atom) ; if (rc != E_OK) { errorReport.Printf("User %s not found\n", *unam) ; return E_NOTFOUND ; } if (!objId) { errorReport.Printf("User %s not found case 2\n", *unam) ; return E_NOTFOUND ; } pInfo->m_SubId = objId ; m_pApp->m_SessCookie.Insert(pE->Cookie(), pInfo) ; rc = m_pApp->m_ADP.m_pReposSubscriber->Fetch(uObj, objId) ; if (rc != E_OK) { errorReport.Printf("Could not fetch subscriber user type with obj id %d\n", objId) ; return rc ; } tmpStr = atom.Str() ; bAccess = m_pApp->m_UserTypes[tmpStr] ; pRepos = m_pApp->m_ADP.GetObjRepos(tmpStr) ; if (!pRepos) { errorReport.Printf("User type [%s] not located\n", *tmpStr) ; return E_NOTFOUND ; } pInfo->m_UserRepos = pRepos->DeltaId() ; uObj.GetValue(atom, m_pApp->m_ADP.m_pMbr_Subscriber_UID) ; pInfo->m_UserId = atom.Int32() ; if (rc == E_OK) { pInfo->m_Access &= ACCESS_ADMIN ; pInfo->m_Access |= bAccess ; } return rc ; }