r20600: Web Application Framework
[Samba.git] / services / samba / system.esp
blob59844cda39895b8fed71013b5f67841dbfcaf45d
1 <%
2 /*
3  * Copyright:
4  *   (C) 2006 by Derrell Lipman
5  *       All rights reserved
6  *
7  * License:
8  *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
9  */
12  * JSON-RPC mappings to system facilities
13  */
15 /* We'll be accessing session resources */
16 jsonrpc_include("resources.esp");
19 /**
20  * Authenticate and log in
21  *
22  * @param params[0]
23  *   User name
24  *
25  * @param params[1]
26  *   Password
27  *
28  * @param params[2]
29  *   Domain
30  *
31  * @param error
32  *   An object of class JsonRpcError.
33  *
34  * @return
35  *   Success: "Logged in"
36  *   Failure: error event, origin=Server, code=LoginFailed
37  */
38 function _login(params, error)
40     var ret;
41     var creds = credentials_init();
43     creds.set_username(params[0]);
44     creds.set_password(params[1]);
45     creds.set_domain(params[2]);
46     creds.set_workstation(request['REMOTE_HOST']);
47     auth = userAuth(creds, request['REMOTE_SOCKET_ADDRESS']);
49     if (auth == undefined)
50     {
51         error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
52         error.setError(jsonrpc.Constant.ServerError.LoginFailed,
53                        "Invalid login.");
54         ret = error;
55     }
56     else if (auth.result)
57     {
58         session.AUTHENTICATED = true;
59         session.authinfo = new Object();
61         session.authinfo.username = auth.username;
62         session.authinfo.domain = auth.domain;
63         session.authinfo.credentials = creds;
64         session.authinfo.session_info = auth.session_info;
66         ret = "Logged in";
67     }    
68     else if (auth.report == undefined)
69     {
70         error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
71         error.setError(jsonrpc.Constant.ServerError.LoginFailed,
72                        "Login failed.");
73         ret = error;
74     }
75     else
76     {
77         error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
78         error.setError(jsonrpc.Constant.ServerError.LoginFailed,
79                        "Login failed: " + auth.report);
80         ret = error;
81     }
83     return ret;
85 jsonrpc.method.login = _login;
89 /**
90  * Retrieve the list of open resources (for debugging)
91  *
92  * @return "Logged out"
93  */
94 function _logout(params, error)
96     session.AUTHENTICATED = false;
97     return "Logged out";
99 jsonrpc.method.logout = _logout;
104  * Retrieve the list of open resources (for debugging)
105  */
106 function _get_open_resources(params, error)
108     return session.resources.getList(error);
110 jsonrpc.method.get_open_resources = _get_open_resources;
114  * Local Variables:
115  * mode: c
116  * End:
117  */