1 using System.Collections.Specialized;
4 using System.Text.RegularExpressions;
8 namespace CPE.App.Web.Connect {
13 /// Logs into the Connect service with the information provided and returns the Session object containing the session key.
15 /// <param name="username">The username/login of the account.</param>
16 /// <param name="password">The password for the account.</param>
17 /// <param name="connectURL">The URL to the connect service.</param>
18 /// <param name="accountId">The primary key of the Connect account/host.</param>
19 public static Session UserLogin(string username, string password, string connectURL, int? accountId) {
22 var request = new Request(connectURL, "login");
23 request.Parameters.Add("login", username);
24 request.Parameters.Add("password", password);
25 if(accountId.HasValue)
26 request.Parameters.Add("account-id", accountId.Value.ToString());
29 if(request.Execute() && request.Status == Status.OK && !string.IsNullOrEmpty(request.ExtractSessionKey())) {
31 return new Session() {
32 Hostname = connectURL,
33 SessionKey = request.ExtractSessionKey()
41 /// Resets the password for the specified account.
43 /// <param name="admin">The administrative session.</param>
44 /// <param name="userid">The principal-id of the user's account.</param>
45 /// <param name="password">The new password.</param>
46 public static bool ResetPassword(Session admin, int userid, string password) {
48 var request = new Request(admin, "user-update-pwd");
49 request.Parameters.Add("user-id", userid.ToString());
50 request.Parameters.Add("password", password);
51 request.Parameters.Add("password-verify", password);
53 return (request.Execute() && request.Status == Status.OK);
57 /// Creates a new guest user with the specified information.
59 /// <param name="admin">The administrative session.</param>
60 /// <param name="username">The login/username of the user.</param>
61 /// <param name="password">The password for the user.</param>
62 /// <param name="email">The e-mail for the user.</param>
63 /// <param name="name">The user's full name.</param>
64 /// <returns>Returns the new principal-id of the user.</returns>
65 public static int CreateGuest(Session admin, string username, string password, string email, string firstName, string lastName) {
67 var request = new Request(admin, "principal-update");
68 request.Parameters.Add("type", "guest");
69 request.Parameters.Add("has-children", "false");
70 request.Parameters.Add("login", username);
71 request.Parameters.Add("password", password);
72 request.Parameters.Add("email", email);
73 request.Parameters.Add("first-name", firstName);
74 request.Parameters.Add("last-name", lastName);
76 if(request.Execute() && request.Status == Status.OK) {
78 XmlNode principal = request.XmlResults.SelectSingleNode("/results/principal");
81 return int.Parse(principal.Attributes["principal-id"].Value);