<cfcomponent>
<cffunction name="CLogin" access="remote"
returntype="string">
<cfargument name="username" type="string"
required="true">
<cfargument name="password" type="string" required="true"
<cfset
MM_redirectLoginSuccess="
http://www.softproofs.com/clientarea/index.cfm">
<cfset
MM_redirectLoginFailed="index.cfm?login=failed">
<cfquery name="MM_rsUser"
datasource="#Request.MainDSN#">
SELECT username,password,priv FROM clients WHERE
username=#argument.username# AND password=#argument.password#
</cfquery>
<cfif MM_rsUser.RecordCount NEQ 0>
<cftry>
<cflock scope="Session" timeout="30" type="Exclusive">
<cfset Session.MM_Username=#argument.username#>
<cfset Session.MM_UserAuthorization=MM_rsUser.priv[1]>
</cflock>
<cfif IsDefined("URL.accessdenied") AND false>
<cfset MM_redirectLoginSuccess=URL.accessdenied>
</cfif>
<cflocation url="#MM_redirectLoginSuccess#"
addtoken="no">
<cfcatch type="Lock">
<!--- code for handling timeout of cflock --->
</cfcatch>
</cftry>
</cfif>
<cflocation url="#MM_redirectLoginFailed#"
addtoken="no">
<cfelse>
<cfset MM_LoginAction=CGI.SCRIPT_NAME>
<cfif CGI.QUERY_STRING NEQ "">
<cfset MM_LoginAction=MM_LoginAction & "?" &
XMLFormat(CGI.QUERY_STRING)>
</cfif>
</cfif>
</cffunction>
</cfcomponent>