svn commit: samba r21896 - in branches/SAMBA_4_0/services/samba: .
mimir at samba.org
mimir at samba.org
Tue Mar 20 22:44:24 GMT 2007
Author: mimir
Date: 2007-03-20 22:44:22 +0000 (Tue, 20 Mar 2007)
New Revision: 21896
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21896
Log:
- Enable creating default NetContext when no explicit credentials are
passed. In such case use what's been provided on swat session logon.
- Create a proper NetContext object only once and add it to the resources
for later use.
rafal
Modified:
branches/SAMBA_4_0/services/samba/ejsnet.esp
Changeset:
Modified: branches/SAMBA_4_0/services/samba/ejsnet.esp
===================================================================
--- branches/SAMBA_4_0/services/samba/ejsnet.esp 2007-03-20 22:25:14 UTC (rev 21895)
+++ branches/SAMBA_4_0/services/samba/ejsnet.esp 2007-03-20 22:44:22 UTC (rev 21896)
@@ -11,53 +11,67 @@
function _NetContext(params, error)
{
+ var credParams, credentials;
+ var resName;
+
if (params.length < 1)
{
- error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
- "too few parameters(usage: [ <credentials ])");
- return error;
+ /* create default NetContext based on already provided credentials */
+ credentials = session.authinfo.credentials;
+ resName = "netCtx";
}
-
- var creds = params[0];
- if (creds == undefined)
+ else
{
- error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
- "credentials parameter is undefined");
- return error;
- }
+ /* create user specified credentials object */
+ credParams = params[0];
+ if (typeof(credParams) != "object")
+ {
+ error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
+ "credentials parameter is expected to be an object");
+ return error;
+ }
- if (creds.domain == undefined ||
- typeof(creds.domain) != "string")
- {
- error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
- "a valid string is expected in credentials.domain");
- return error;
- }
+ if (typeof(credParams.domain) != "string")
+ {
+ error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
+ "a valid string is expected in credentials.domain");
+ return error;
+ }
- if (creds.username == undefined ||
- typeof(creds.username) != "string")
- {
- error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
- "a valid string is expected in credentials.username");
- return error;
+ if (typeof(credParams.username) != "string")
+ {
+ error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
+ "a valid string is expected in credentials.username");
+ return error;
+ }
+
+ if (typeof(credParams.username) != "string")
+ {
+ error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
+ "a valid string is expected in credentials.password");
+ return error;
+ }
+
+ credentials = credentials_init();
+ credentials.set_domain(credParams.domain);
+ credentials.set_username(credParams.username);
+ credentials.set_password(credParams.password);
+
+ resName = "netCtx[" + credParams.domain + "/" + credParams.username + "]";
}
-
- if (creds.password == undefined ||
- typeof(creds.username) != "string")
+
+ /* was this NetContext created yet ? */
+ var resId = session.resources.find(key, error);
+ if (resId != undefined)
{
- error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
- "a valid string is expected in credentials.password");
- return error;
+ /* yes, return its resource id */
+ return resId;
}
-
- var credentials = credentials_init();
- credentials.set_domain(creds.domain);
- credentials.set_username(creds.username);
- credentials.set_password(creds.password);
-
+
+ /* no, create the new context and assign it a resource id */
var netCtx = NetContext(credentials);
-
- return session.resources.set(netCtx, "netCtx", error);
+ resId = session.resources.set(netCtx, resName, error);
+ return resId;
}
jsonrpc.method.NetContext = _NetContext;
More information about the samba-cvs
mailing list