trochu rozšíření problému SSO. Potřebuji ověřit uživatele pomocí tiketu, který mám v databázi na serveru. V případě, že je tiket platný a vrátí se mi hodnota true, jak mám Moodlu sdělit, že jde o autentizovaného uživatele? I když zapnu debug info, tak se toho moc nedozvím, zda se něco děje, či ne...
Snad z kódu bude patrné, to čeho chci docílit
if ($o!='' && $SsoTicket!='') { $user_login = ''; $SERVER_SSO = 'database adress'; $LOGIN_SSO = 'login'; $HESLO_SSO = 'password'; $NAZEV_DATABAZE_SSO = 'database name'; $dbSSO = mssql_connect($SERVER_SSO, $LOGIN_SSO, $HESLO_SSO); $dbFound = mssql_select_db($NAZEV_DATABAZE_SSO,$dbSSO); if ($dbFound) { $querySSO=" select TOP 1 LOGIN as LOGIN from _APPL_SSO_TICKETS inner join _APPL_INTERFACE_PERSON on _APPL_INTERFACE_PERSON.LOGIN = _APPL_SSO_TICKETS.LOGIN where _APPL_SSO_TICKETS.VALID >= getdate() and _APPL_INTERFACE_PERSON.VALID = 1 and _APPL_INTERFACE_PERSON.UCO = '".$o."' and TICKET_ID = '".$SsoTicket."'; "; $resSSO=mssql_query($querySSO,$dbSSO); if ($dbField = mysql_fetch_assoc($resSSO)) { $user_login = $dbField['LOGIN']; } } mssql_close($dbSSO); if ($user_login != ''){ $user = $DB->get_record('user', array('username'=>$user_login, 'mnethostid'=>$CFG->mnet_localhost_id)); return true; } else{ return false; } } return false; |