ZAUTHENTICATE(ServiceName,Namespace,Username,Password,Credentials,Properties) PUBLIC {
#include %occErrors
set $ZTrap="Error"
set Name=$ZConvert(Username,"U")
set Name=$piece(Username,"@",1)
set UserRecord=$get(^MYUSERS(Name))
if (UserRecord="")
{
quit $SYSTEM.Status.Error($$$UserDoesNotExist,Username)
}
if ($SYSTEM.Encryption.SHA1Hash(Password)'= $List(UserRecord,1))
{
quit $SYSTEM.Status.Error($$$UserInvalidPassword)
}
set Properties("FullName")=$piece(UserRecord,",",2)
set Properties("Comment")=""
set Properties("Roles")="%All"
set Properties("NameSpace")=Namespace
set Properties("Routine")=""
set Properties("Password")=Password
set Properties("Username")=Name
quit $SYSTEM.Status.OK()
Error
set $ZTrap=""
quit $SYSTEM.Status.Error(5002 /*$$$ObjectScriptError*/,$ZError)
}