/// <summary> /// Selection has Owner or Current /// </summary> /// <returns>true if it has owner or Current</returns> public bool SelectionHasOwnerOrCurrent() { TreeModel tModel; TreeSelection tSelect = UserTreeView.Selection; Array treePaths = tSelect.GetSelectedRows(out tModel); // remove compiler warning if (tModel != null) { tModel = null; } foreach (TreePath tPath in treePaths) { TreeIter iter; if (UserTreeStore.GetIter(out iter, tPath)) { iFolderUser user = (iFolderUser)UserTreeStore.GetValue(iter, 0); if (user.UserID == ifolder.OwnerID) { return(true); } if (user.UserID == ifolder.CurrentUserID) { return(true); } } } return(false); }
private bool IsCheckBoxEnabled(iFolderUser member, string accessID, string ownerID, bool flag) { if (member.IsOwner) { return(false); } if (accessID == member.ID) { return(false); } if (accessID == ownerID) { return(true); } if (IsGroupMember(member.ID, accessID) && (member.MemberRights == Rights.Admin)) { if (flag) { return(true); } else { return(false); } } else { return(true); } }
/// <summary> /// Bind the Data to the Page. /// </summary> private void BindData() { try { ChangeEntryType changeEntryType = (ChangeEntryType)Enum.Parse(typeof(ChangeEntryType), type); switch (changeEntryType) { case ChangeEntryType.File: case ChangeEntryType.Directory: // entry iFolderEntry entry = web.GetEntry(ifolderID, itemID); ItemName.Text = entry.Path; break; case ChangeEntryType.Member: iFolderUser member = web.GetUser(itemID); ItemName.Text = member.FullName; break; } } catch (SoapException ex) { if (!HandleException(ex)) { throw; } } BindHistoryData(); }
private void ShowStatus() { string StatusMessage = Request.QueryString.Get("status"); string SecondaryAdmin = Request.QueryString.Get("secondaryadmin"); string GroupName = Request.QueryString.Get("groupname"); iFolderUser user = web.GetUser(SecondaryAdmin); if (StatusMessage.Equals("SUCCESS")) { SuccessLabel.BackColor = System.Drawing.Color.LightGreen; SuccessLabel.Text = op + " : " + "SUCCESSFUL"; if (op == "ADD") { string SuccessText = String.Format(GetString("GROUPRIGHTSADDSUCCESSFUL"), "<b>", user.FullName, "</b>", "<b>", GroupName, "</b>"); StatusLabel.Text = SuccessText; } else if (op == "EDIT") { string SuccessText = String.Format(GetString("GROUPRIGHTSEDITSUCCESSFUL"), "<b>", user.FullName, "</b>", "<b>", GroupName, "</b>"); StatusLabel.Text = SuccessText; } RepeatButton.Text = GetString("REPEAT"); } else { StatusLabel.Text = String.Format(GetString("GROUPRIGHTSADDFAILURE"), "<b>", user.FullName, "</b>", "<b>", GroupName, "</b>"); RepeatButton.Text = GetString("TRYAGAIN"); } }
/// <summary> /// event handler that gets called when the delete user button is clicked. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void OnDeleteButton_Click(object source, EventArgs e) { foreach (string userID in CheckedUsers.Keys) { // bugbug!! - need a call to delete by user ids. try { iFolderUser user = web.GetUser(userID); web.DeleteUser(user.UserName); } catch (Exception ex) { string errMsg = String.Format(GetString("ERRORCANNOTDELETEUSER"), userID); TopNav.ShowError(errMsg, ex); return; } } // clear the checked members. CheckedUsers.Clear(); AllUsersCheckBox.Checked = false; // set the action buttons. SetActionButtons(); // rebind the data source with the new data. GetUsers(); }
/// <summary> /// Constructor /// </summary> /// <param name="domainID">Domain ID</param> /// <param name="type">SimiasEvent Type</param> public SimiasEvent(string domainID, SimiasEventType type) { this.ifUser = null; this.ifolderID = null; this.userID = null; this.domainID = domainID; this.type = type; }
private void AccessCellTextDataFunc(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0); ((CellRendererText)cell).Text = GetDisplayRights(user.Rights); }
/// <summary> /// constructor for memberinfo /// </summary> /// <param name="user"></param> /// <param name="removable"></param> public MemberInfo(iFolderUser user, bool removable) { this.id = user.ID; this.username = user.UserName; this.fullName = user.FullName; this.removable = removable; this.created = DateTime.Now; }
/// <summary> /// Cnostructor /// </summary> /// <param name="iFolderID">iFolder ID</param> /// <param name="ifldrUser">iFolder User</param> /// <param name="UserID">User ID</param> /// <param name="type">SimiasEvent Type</param> public SimiasEvent(string iFolderID, iFolderUser ifldrUser, string UserID, SimiasEventType type) { this.ifUser = ifldrUser; this.ifolderID = iFolderID; this.userID = UserID; this.domainID = null; this.type = type; }
/// <summary> /// event handler that gets called when the provision user button is clicked. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void OnProvisionButton_Click(object source, EventArgs e) { string uplist = ""; string plist = ""; foreach (string userid in CheckedUsers.Keys) { int preference = GetRightsForUser(userid); if (preference == -1) { preference = 0xffff; } UserGroupAdminRights rights = new UserGroupAdminRights((int)preference); if (!rights.ProvisioningAllowed) { continue; } iFolderUser ProvisionedUser = web.GetUser(userid); if (ProvisionedUser.HomeServer == null || ProvisionedUser.HomeServer == String.Empty || ProvisionedUser.HomeServer == "") { uplist += userid; uplist += ":"; } else { plist += userid; plist += ":"; plist += ProvisionedUser.HomeServer; plist += ":"; } } /// clear the hastable ServerProvisioningNames.Clear(); if ((uplist == null || uplist == string.Empty) && (plist == null || plist == string.Empty)) { string errormessage = GetString("ERRORACCESSEXCEPTION"); TopNav.ShowError(errormessage); return; } /// call the next page to provision the users Response.Redirect(String.Format("ProvisionUsers.aspx?&userlist={0}&puserlist={1}", uplist, plist)); }
private void UserCellPixbufDataFunc(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0); if (user.UserID == ifolder.OwnerID) { ((CellRendererPixbuf)cell).Pixbuf = OwnerUserPixbuf; } else if (user.UserID == ifolder.CurrentUserID) { ((CellRendererPixbuf)cell).Pixbuf = CurrentUserPixbuf; } else { ((CellRendererPixbuf)cell).Pixbuf = NormalUserPixbuf; } }
private void StateCellTextDataFunc(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0); if (ifolder.OwnerID == user.UserID) { ((CellRendererText)cell).Text = Util.GS("Owner"); } else if (user.State != "Member") { ((CellRendererText)cell).Text = Util.GS("Invited User"); } else { ((CellRendererText)cell).Text = Util.GS("iFolder User"); } }
/// <summary> /// SetSelectedUserRights /// </summary> /// <param name="rights">Rights</param> private void SetSelectedUserRights(string rights) { TreeModel tModel; // User clicked on rights TreeSelection tSelect = UserTreeView.Selection; Array treePaths = tSelect.GetSelectedRows(out tModel); foreach (TreePath tPath in treePaths) { TreeIter iter; if (UserTreeStore.GetIter(out iter, tPath)) { iFolderUser user = (iFolderUser)tModel.GetValue(iter, 0); try { ifws.SetUserRights(ifolder.ID, user.UserID, rights); user.Rights = rights; tModel.SetValue(iter, 0, user); } catch (Exception e) { iFolderExceptionDialog ied = new iFolderExceptionDialog( topLevelWindow, e); ied.Run(); ied.Hide(); ied.Destroy(); ied = null; } } } }
private void UserCellTextDataFunc(Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel tree_model, Gtk.TreeIter iter) { iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0); if ((user.FN != null) && (user.FN.Length > 0)) { if (duplicateMembers.Contains(user.FN)) { ((CellRendererText)cell).Text = string.Format("{0} ({1})", user.FN, user.Name); } else { ((CellRendererText)cell).Text = user.FN; } } else { ((CellRendererText)cell).Text = user.Name; } }
/// <summary> /// User Data Commmand /// </summary> /// <param name="source"></param> /// <param name="e"></param> private void UserData_ItemCommand(object source, DataGridCommandEventArgs e) { try { // add iFolderUser user = web.GetUser((string)e.CommandArgument); members.Add(user.ID, new MemberInfo(user)); // reset pagging MemberPagging.Index = 0; BindUserData(); BindMemberData(); } catch (SoapException ex) { if (!HandleException(ex)) { throw; } } }
/// <summary> /// Event handler that gets called when the delete button is clicked. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void OnDeleteClicked(object source, EventArgs e) { LinkButton lb = source as LinkButton; DataGridItem item = lb.Parent.Parent as DataGridItem; string userID = item.Cells[AccountsIDColumn].Text; iFolderUser user = web.GetUser(userID); bool deleted = false; iFolderServer[] iFolderServers = web.GetServers(); foreach (iFolderServer server in iFolderServers) { if (server.IsMaster) { UriBuilder remoteurl = new UriBuilder(server.PublicUrl); remoteurl.Path = (new Uri(web.Url)).PathAndQuery; web.Url = remoteurl.Uri.ToString(); try { deleted = web.DeleteFromUserMoveQueue(user.ID); if (deleted == true) { lb.Text = GetString("DELETED"); lb.Enabled = false; } } catch (Exception ex) { TopNav.ShowError(ex.Message); web.Url = currentServerURL; return; } } } web.Url = currentServerURL; }
/// <summary> /// Do Login /// </summary> /// <param name="username">Username</param> /// <param name="password">Password</param> /// <param name="check">Perform browser checks.</param> private void DoLogin(string username, string password, bool check) { // client information log.Info(Context, "Client Information: {0}, {1}, {2}", username, Context.Request.UserHostName, Context.Request.UserAgent); // expires for new cookies DateTime expires = DateTime.Now + TimeSpan.FromDays(30); // check for cookies if (check) { HttpCookie testCookie = Request.Cookies["test"]; if (testCookie == null) { Message.Text = "LOGIN.NOCOOKIES"; // log access log.Info(Context, "Login Failed: Browser Cookies Disabled"); return; } } // check for running scripts // NOTE: check the value for iChain if (check) { string noscript = Request.Form.Get("noscript"); if ((noscript != null) && (noscript == "true")) { Message.Text = "LOGIN.NOSCRIPT"; // log access log.Info(Context, "Login Failed: Browser Scripts Disabled"); return; } } try { // connection iFolderWeb weblogin = new iFolderWeb(); // update web url // always use the original path from the WSDL file string url = Environment.GetEnvironmentVariable("SimiasUrl"); if (url == null) { url = System.Configuration.ConfigurationSettings.AppSettings.Get("SimiasUrl"); } #if TESTING url = "http://localhost:8086"; #endif UriBuilder loginUrl = new UriBuilder(url); loginUrl.Path = (new Uri(weblogin.Url)).PathAndQuery; weblogin.Url = loginUrl.Uri.ToString(); UTF8Encoding utf8Name = new UTF8Encoding(); byte[] encodedCredsByteArray = utf8Name.GetBytes(username); string iFolderUserBase64 = Convert.ToBase64String(encodedCredsByteArray); encodedCredsByteArray = utf8Name.GetBytes(password); string iFolderPassBase64 = Convert.ToBase64String(encodedCredsByteArray); // credentials weblogin.PreAuthenticate = true; weblogin.Credentials = new NetworkCredential(iFolderUserBase64, iFolderPassBase64); // cookies weblogin.CookieContainer = new CookieContainer(); //Initial Login iFolderUser loginuser = null;; try { loginuser = weblogin.GetAuthenticatedUser(); } catch (WebException ex) { log.Info(Context, ex, "Login Failed"); string ccode = LanguageList.SelectedValue == null ? "en" : LanguageList.SelectedValue; Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(ccode); if (!HandleException(ex)) { throw; } return; } catch (Exception e) { //for now give a general message log.Info(Context, e, "Login Failed"); string ccode = LanguageList.SelectedValue == null ? "en" : LanguageList.SelectedValue; Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(ccode); Message.Text = "LOGIN.UNAUTHORIZED"; return; } url = weblogin.GetHomeServerForUser(loginuser.UserName, password); iFolderWeb web = new iFolderWeb(); UriBuilder webUrl = new UriBuilder(url); webUrl.Path = (new Uri(web.Url)).PathAndQuery; web.Url = webUrl.Uri.ToString(); string multibyteserver = weblogin.GetServerStatus(); // credentials web.PreAuthenticate = true; if (multibyteserver == "no") { web.Credentials = new NetworkCredential(username, password); } else { web.Credentials = new NetworkCredential(iFolderUserBase64, iFolderPassBase64); } // cookies web.CookieContainer = new CookieContainer(); // user, system, and server iFolderUser user = null; try { user = web.GetAuthenticatedUser(); } catch (WebException ex) { log.Info(Context, ex, "Login Failed"); if (!HandleException(ex)) { throw; } return; } catch (Exception e) { //for now give a general message log.Info(Context, e, "Login Failed"); Message.Text = "LOGIN.UNAUTHORIZED"; return; } Session["Connection"] = web; Session["User"] = user; iFolderSystem system = web.GetSystem(); Session["System"] = system; iFolderServer server = web.GetHomeServer(); Session["Server"] = server; encodedCredsByteArray = utf8Name.GetBytes(user.UserName); iFolderUserBase64 = Convert.ToBase64String(encodedCredsByteArray); // new username cookie for 30 days Response.Cookies.Remove("username"); Response.Cookies["username"].Value = (multibyteserver == "no") ? user.UserName : iFolderUserBase64; Response.Cookies["username"].Expires = expires; Response.Cookies["username"].Path = "/ifolder/"; Session["Language"] = "en"; string code = "en"; // ui language if (LanguageList.SelectedValue == null || LanguageList.SelectedValue == String.Empty) { /// Case when single sign on happens without the login page so no language selected if ((Request.UserLanguages != null) && (Request.UserLanguages.Length > 0)) { code = Request.UserLanguages[0]; if (!(code.StartsWith("zh") || code.StartsWith("pt"))) { code = code.Substring(0, 2); } Session["Language"] = code; } } else { /// Normal login so select from the list code = LanguageList.SelectedValue; Session["Language"] = LanguageList.SelectedValue; } // settings WebSettings settings = new WebSettings(web); Session["Settings"] = settings; Response.Cookies["language"].Value = code; Response.Cookies["language"].Expires = expires; Response.Cookies["language"].Path = "/ifolder/"; // log access log.Info(Context, "Login Successful"); // redirect FormsAuthentication.RedirectFromLoginPage(user.UserName, false); } catch (WebException ex) { // log access log.Info(Context, ex, "Login Failed"); if (!HandleException(ex)) { throw; } } catch (Exception ex) { // log access log.Info(Context, ex, "Login Failed"); throw; } }
/// <summary> /// Creates a DataSource containing user names from a search. /// </summary> /// <returns>An DataView object containing the ifolder users.</returns> private DataView CreateMemberList() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("VisibleField", typeof(bool))); dt.Columns.Add(new DataColumn("IDField", typeof(string))); dt.Columns.Add(new DataColumn("NameField", typeof(string))); dt.Columns.Add(new DataColumn("FullNameField", typeof(string))); dt.Columns.Add(new DataColumn("ProvisionedField", typeof(string))); string SelectedUserList = Request.QueryString.Get("UserList"); string [] ListOfSelectedUsers = SelectedUserList.Split(new char[] { ':' }); for (int index = CurrentUserOffset; (index < (ListOfSelectedUsers.Length - 1) && index < (CurrentUserOffset + MemberList.PageSize)); index++) { iFolderUser user = web.GetUser(ListOfSelectedUsers[index]); /// Those users will be displayed who were passed from previous page dr = dt.NewRow(); dr[0] = true; dr[1] = user.ID; dr[2] = user.UserName; dr[3] = user.FullName; dr[4] = "false"; dt.Rows.Add(dr); } string pSelectedUserList = Request.QueryString.Get("PUserList"); string [] pListOfSelectedUsers = pSelectedUserList.Split(new char[] { ':' }); for (int index = 0; (index < (pListOfSelectedUsers.Length - 1) && dt.Rows.Count < MemberList.PageSize); index++) { iFolderUser user = web.GetUser(pListOfSelectedUsers[index++]); /// Those users will be displayed who were passed from previous page dr = dt.NewRow(); dr[0] = true; dr[1] = user.ID; dr[2] = user.UserName; dr[3] = user.FullName; dr[4] = "true"; dt.Rows.Add(dr); } // If the page size is not full, finish it with empty entries. for (int i = dt.Rows.Count; i < MemberList.PageSize; ++i) { dr = dt.NewRow(); dr[0] = false; dr[1] = String.Empty; //dr[ 2 ] = false; dr[2] = String.Empty; dr[3] = String.Empty; dr[4] = String.Empty; dt.Rows.Add(dr); } // Remember the total number of users. TotalUsers = (ListOfSelectedUsers.Length - 1) + (pListOfSelectedUsers.Length - 1); // Build the data view from the table. return(new DataView(dt)); }
private ListViewItem addiFolderUserToListView(iFolderUser ifolderUser) { ListViewItem lvitem; lock (subscrHT) { lvitem = (ListViewItem)subscrHT[ifolderUser.ID]; if (lvitem == null) { bool addItem = true; ListViewItem lvi; lock (userIDHT) { lvi = (ListViewItem)userIDHT[ifolderUser.UserID]; if (lvi != null) { if (!ifolderUser.State.Equals(member)) { addItem = false; try { connectToWebService(); ifWebService.RemoveiFolderUser(currentiFolder.ID, ifolderUser.UserID); } catch { } } else if (!((ShareListMember)lvi.Tag).iFolderUser.State.Equals(member)) { lvi.Remove(); subscrHT.Remove(((ShareListMember)lvi.Tag).iFolderUser.ID); userIDHT.Remove(ifolderUser.UserID); } } } if (addItem) { ShareListMember slMember = new ShareListMember(); slMember.iFolderUser = ifolderUser; string[] items = new string[3]; items[0] = (ifolderUser.FN != null) && !ifolderUser.FN.Equals(string.Empty) ? ifolderUser.FN : ifolderUser.Name; items[1] = stateToString(ifolderUser.State, ifolderUser.IsOwner); int imageIndex = 1; items[2] = rightsToString(ifolderUser.Rights); if ((currentUser != null) && currentUser.UserID.Equals(ifolderUser.UserID)) { imageIndex = 0; } else if ((ifolderUser.State != null) && !ifolderUser.State.Equals(member)) { imageIndex = 2; } lvitem = new ListViewItem(items, imageIndex); if (ifolderUser.State.Equals(inviting)) { slMember.Added = true; } else { subscrHT.Add(slMember.iFolderUser.ID, lvitem); } lvitem.Tag = slMember; lock (userIDHT) { bool duplicateName = false; foreach (ListViewItem item in userIDHT.Values) { if (lvitem.SubItems[0].Text.ToLower().Equals(item.SubItems[0].Text.ToLower())) { duplicateName = true; ShareListMember slm = (ShareListMember)item.Tag; item.SubItems[0].Text = string.Format("{0} ({1})", slm.iFolderUser.FN, slm.iFolderUser.Name); } } if (duplicateName) { lvitem.SubItems[0].Text = string.Format("{0} ({1})", ifolderUser.FN, ifolderUser.Name); } shareWith.Items.Add(lvitem); userIDHT[slMember.iFolderUser.UserID] = lvitem; } } } } return lvitem; }
/// <summary> /// Page_Load /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Page_Load(object sender, System.EventArgs e) { // connection web = Session["Connection"] as iFolderAdmin; currentServerURL = web.Url; // localization rm = Application["RM"] as ResourceManager; string userID = Session["UserID"] as String; if (userID != null) { sysAccessPolicy = web.GetUserSystemRights(userID, null); } else { sysAccessPolicy = 0; } uRights = new UserSystemAdminRights(sysAccessPolicy); if (uRights.SecondaryAdminAddAllowed == false) { Page.Response.Redirect(String.Format("Error.aspx?ex={0}&Msg={1}", GetString("ACCESSDENIED"), GetString("ACCESSDENIEDERROR"))); } if (!IsPostBack) { // Initialize the localized fields. AggregateDiskQuotaLabel.Text = "Set the Aggregate Disk Quota Limit For Entire Group: "; StorageUnitLabel.Text = GetString("MB"); NoOfiFoldersList.Items[0].Text = GetString("ALLOW"); NoOfiFoldersList.Items[0].Selected = true; DiskQuotaRightsList.Items[0].Text = GetString("ALLOW"); DiskQuotaRightsList.Items[0].Selected = true; FileSizeRightsList.Items[0].Text = GetString("ALLOW"); FileSizeRightsList.Items[0].Selected = true; SyncIntervalRightsList.Items[0].Text = GetString("ALLOW"); SyncIntervalRightsList.Items[0].Selected = true; FileListRightsList.Items[0].Text = GetString("ALLOW"); FileListRightsList.Items[0].Selected = true; SharingRightsList.Items[0].Text = GetString("ALLOWMODIFYSHARINGPOLICY"); SharingRightsList.Items[0].Selected = true; EncryptionRightsList.Items[0].Text = GetString("ALLOWMODIFYENCRYPTIONPOLICY"); EncryptionRightsList.Items[0].Selected = true; ProvisioningRightsList.Items[0].Text = GetString("ALLOWUSERPROVISIONING"); ProvisioningRightsList.Items[1].Text = GetString("ALLOWUSERENABLING"); ProvisioningRightsList.Items[0].Selected = true; ProvisioningRightsList.Items[1].Selected = true; iFolderRightsList.Items[0].Text = GetString("ALLOWORPHANIFOLDEROWNERSHIP"); iFolderRightsList.Items[1].Text = GetString("ALLOWIFOLDERENABLING"); iFolderRightsList.Items[2].Text = GetString("ALLOWSHAREDMEMBERRIGHTS"); iFolderRightsList.Items[3].Text = GetString("ALLOWDELETEIFOLDERRIGHTS"); iFolderRightsList.Items[0].Selected = true; iFolderRightsList.Items[1].Selected = true; iFolderRightsList.Items[2].Selected = true; iFolderRightsList.Items[3].Selected = true; iFolderUser user = web.GetUser(SecondaryAdmin); string LebelDisplay; if (GetString(op) == "Add") { LebelDisplay = GetString("ASSIGNADMINRIGHTS"); } else { LebelDisplay = GetString(op) + " " + GetString("ADMINRIGHTSFOR"); } AdminFullNameLabel.Text = LebelDisplay + user.FullName; SaveAdminRights.Text = GetString("SAVE"); CancelAdminRights.Text = GetString("CANCEL"); InitializeGroupList(); } }
public iFolderUserChangedEventArgs(iFolderUser ifUser, string iFolderID) { this.user = ifUser; this.ifolderID = iFolderID; }
/// <summary> /// Do Login /// </summary> /// <param name="username">Username</param> /// <param name="password">Password</param> /// <param name="check">Perform browser checks.</param> private void DoLogin(string username, string password, bool check) { // client information log.Info(Context, "Client Information: {0}, {1}, {2}", username, Context.Request.UserHostName, Context.Request.UserAgent); // expires for new cookies DateTime expires = DateTime.Now + TimeSpan.FromDays(30); // check for cookies if (check) { HttpCookie testCookie = Request.Cookies["test"]; if (testCookie == null) { MessageType.Text = rm.GetString("LOGINERROR"); MessageText.Text = "LOGINNOCOOKIES"; // log access log.Info(Context, "Login Failed: Browser Cookies Disabled"); return; } } // check for running scripts // NOTE: check the value for iChain if (check) { string noscript = Request.Form.Get("noscript"); if ((noscript != null) && (noscript == "true")) { MessageType.Text = rm.GetString("LOGINERROR"); MessageText.Text = "LOGINNOSCRIPT"; // log access log.Info(Context, "Login Failed: Browser Scripts Disabled"); return; } } try { // connection iFolderAdmin web = new iFolderAdmin(); // update web url // always use the original path from the WSDL file string simiasUrl = Environment.GetEnvironmentVariable("SimiasUrl"); if (simiasUrl == null) { simiasUrl = System.Configuration.ConfigurationSettings.AppSettings.Get("SimiasUrl"); } UriBuilder webUrl = new UriBuilder(simiasUrl); webUrl.Path = (new Uri(web.Url)).PathAndQuery; web.Url = webUrl.Uri.ToString(); UTF8Encoding utf8Name = new UTF8Encoding(); byte[] encodedCredsByteArray = utf8Name.GetBytes(username); string iFolderUserBase64 = Convert.ToBase64String(encodedCredsByteArray); encodedCredsByteArray = utf8Name.GetBytes(password); string iFolderPassBase64 = Convert.ToBase64String(encodedCredsByteArray); // credentials web.PreAuthenticate = true; web.Credentials = new NetworkCredential(iFolderUserBase64, iFolderPassBase64); // in only one path this value will persist, that is when language cookie is null Session["Language"] = "en"; string code = Session["Language"] as string; // ui language if (LanguageList.SelectedValue == null || LanguageList.SelectedValue == String.Empty) { /// Case when single sign on happens without the login page so no language selected if ((Request.UserLanguages != null) && (Request.UserLanguages.Length > 0)) { code = Request.UserLanguages[0]; if (!(code.StartsWith("zh") || code.StartsWith("pt"))) { code = code.Substring(0, 2); } else { // On Single sign-on Browser sends language as zh-cn,zh-tw and pt-br . // Help files are placed in a folder with names zh-CN,zh-TW and pt-BR . if (code == "zh-cn") { code = "zh-CN"; } else if (code == "zh-tw") { code = "zh-TW"; } else if (code == "pt-br") { code = "pt-BR"; } } Session["Language"] = code; } } else { /// Normal login so select from the list Session["Language"] = LanguageList.SelectedValue; code = Session["Language"] as string; } Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(code); log.Info(Context, "Current culture :{0}", Thread.CurrentThread.CurrentUICulture.Name); // user and system iFolderUser user = null; try { user = web.GetAuthenticatedUser(); } catch (Exception ex) { throw ex; } string multibyteserver = web.GetServerStatus(); iFolderSystem system = web.GetSystem(); Session["System"] = system.Name; iFolderServer server = web.GetHomeServer(); Session["Version"] = server.Version; if (multibyteserver == "no") { web.PreAuthenticate = true; web.Credentials = new NetworkCredential(username, password); } // cookies web.CookieContainer = new CookieContainer(); encodedCredsByteArray = utf8Name.GetBytes(user.UserName); iFolderUserBase64 = Convert.ToBase64String(encodedCredsByteArray); // new username cookie for 30 days Response.Cookies["username"].Value = multibyteserver == "no" ? user.UserName : iFolderUserBase64; Response.Cookies["username"].Expires = expires; Response.Cookies["username"].Path = "/admin/"; // session Session["Connection"] = web; Session["Name"] = user.FullName; Session["UserID"] = user.ID; // add server information to the session. Session["HostName"] = server.HostName; Session["MachineName"] = server.MachineName; Session["OSVersion"] = server.OSVersion; Session["ClrVersion"] = server.ClrVersion; // new language cookie for 30 days Response.Cookies["language"].Value = code; Response.Cookies["language"].Expires = expires; Response.Cookies["language"].Path = "/admin/"; // log access log.Info(Context, "Login Successful"); // redirect FormsAuthentication.RedirectFromLoginPage(user.UserName, false); } catch (WebException ex) { // log access log.Info(Context, ex, "Login Failed"); if (!HandleException(ex)) { throw; } } catch (Exception ex) { // log access log.Info(Context, ex, "Login Failed"); throw ex; } }
/// <summary> /// Main to start the execution /// </summary> /// <param name="args"></param> public static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("A command line utility to manage users in a Simias Server domain."); Console.WriteLine("UserCmd.exe action <options>"); return; } ParseCommandLine(args); if (action == "help") { ShowUseage(); return; } if (action == null || url == null) { Console.WriteLine("missing mandatory command line arguments"); return; } if (adminName == null) { Console.Write("Please enter simias admin: "); adminName = Console.ReadLine(); Console.Write("password: "******"/\:"; admin.Url = url.TrimEnd(notEndingWith.ToCharArray()); admin.Url += "/simias10/iFolderAdmin.asmx"; if (action == "create") { if (username == null || password == null) { Console.WriteLine("missing mandatory command line arguments"); return; } // Make the web service call to register/create the user iFolderUser user = null; try { user = admin.CreateUser( username, password, null, first, last, full, null, email); if (user != null) { Console.WriteLine("Successful"); } } catch (WebException we) { if (we.Message.LastIndexOf("401") != 0) { Console.WriteLine("Failed - Invalid admin credentials"); } else { Console.Write("Failed - "); Console.WriteLine(we.Message); } } catch (Exception ex) { Console.WriteLine("Failed creating {0}'s account", username); } } else if (action == "delete") { try { bool status = admin.DeleteUser(username); if (verbose == true) { Console.WriteLine("Deleting user {0} Status {1)", username, status.ToString()); } } catch (WebException we) { if (we.Message.LastIndexOf("401") != 0) { Console.WriteLine("Failed - Invalid admin credentials"); } else { Console.Write("Failed - "); Console.WriteLine(we.Message); } } catch (Exception ex) { Console.WriteLine("Failed deleting {0}'s account", username); } } else if (action == "modify") { iFolderUser user = null; bool exception = false; try { user = admin.GetUser(username); } catch (WebException we) { if (we.Message.LastIndexOf("401") != 0) { Console.WriteLine("Failed - Invalid admin credentials"); } else { Console.Write("Failed - "); Console.WriteLine(we.Message); } exception = true; } catch (Exception ex) { Console.WriteLine("Failed deleting {0}'s account", username); exception = true; } if (user != null) { if (quota != null) { bool changed = false; UserPolicy userPolicy = admin.GetUserPolicy(user.ID, null); if (quota != null) { if (verbose == true) { Console.WriteLine("Changing quota from {0} to {1}", userPolicy.SpaceLimit, Convert.ToInt64(quota)); } userPolicy.SpaceLimit = Convert.ToInt64(quota); changed = true; } if (changed == true) { admin.SetUserPolicy(userPolicy); } } if (email != null || first != null || last != null || full != null) { if (first != null) { user.FirstName = first; } if (last != null) { user.LastName = last; } if (full != null) { user.FullName = full; } if (email != null) { user.Email = email; } // Write the changes admin.SetUser(user.ID, user); } if (password != null) { bool status = admin.SetPassword(username, password); if (verbose == true) { Console.WriteLine("SetPassord for {0} - {1}", username, status.ToString()); } } } else if (exception == false) { Console.WriteLine("Failed - user {0} does not exist", username); } } else if (action == "list") { try { iFolderUserSet userSet = admin.GetUsers(0, 0); //admin.GetUsersBySearch( SearchProperty.UserName, SearchOperation.BeginsWith, "*", 0, 0 ); foreach (iFolderUser user in userSet.Items) { Console.Write("ID: {0} ", user.ID); Console.Write("User: {0} ", user.UserName); if (user.FullName != null && user.FullName != "") { Console.Write("Fullname: {0} ", user.FullName); } Console.Write("Enabled: {0} ", user.Enabled.ToString()); Console.WriteLine(); } } catch (WebException we) { if (we.Message.LastIndexOf("401") != 0) { Console.WriteLine("Failed - Invalid admin credentials"); } else { Console.Write("Failed - "); Console.WriteLine(we.Message); } } catch (Exception ex) { Console.WriteLine("Failed getting a list of users"); } } else if (action == "setpwd") { if (username == null || username == String.Empty || password == null) { Console.WriteLine("missing mandatory command line arguments"); return; } try { bool status = admin.SetPassword(username, password); Console.WriteLine("SetPassord for {0} - {1}", username, status.ToString()); } catch (WebException we) { if (we.Message.LastIndexOf("401") != 0) { Console.WriteLine("Failed - Invalid admin credentials"); } else { Console.Write("Failed - "); Console.WriteLine(we.Message); } } catch (Exception ex) { Console.WriteLine("Failed setting {0}'s password", username); } } else { Console.WriteLine("Error: invalid action"); } return; }
public void OnUserTreeViewButtonPressed(object obj, ButtonPressEventArgs args) { switch (args.Event.Button) { case 1: // first mouse button break; case 2: // second mouse button break; case 3: // third mouse button { TreePath tPath = null; TreeViewColumn tColumn = null; if (UserTreeView.GetPathAtPos((int)args.Event.X, (int)args.Event.Y, out tPath, out tColumn) == true) { TreeSelection tSelect = UserTreeView.Selection; if (tSelect.CountSelectedRows() > 0) { Menu rightsMenu = new Menu(); RadioMenuItem adminItem = new RadioMenuItem(Util.GS("Full Control")); rightsMenu.Append(adminItem); RadioMenuItem rwItem = new RadioMenuItem(adminItem.Group, Util.GS("Read/Write")); rightsMenu.Append(rwItem); RadioMenuItem roItem = new RadioMenuItem(adminItem.Group, Util.GS("Read Only")); rightsMenu.Append(roItem); if (ifolder.CurrentUserRights != "Admin" || SelectionHasOwnerOrCurrent()) { adminItem.Sensitive = false; rwItem.Sensitive = false; roItem.Sensitive = false; } // Get the Value of the actual user selected TreeIter iter; if (UserTreeStore.GetIter(out iter, tPath)) { iFolderUser user = (iFolderUser) UserTreeStore.GetValue(iter, 0); if (user.Rights == "ReadWrite") { rwItem.Active = true; } else if (user.Rights == "Admin") { adminItem.Active = true; } else { roItem.Active = true; } } adminItem.Activated += new EventHandler( OnAdminRightsMenu); rwItem.Activated += new EventHandler( OnRWRightsMenu); roItem.Activated += new EventHandler( OnRORightsMenu); rightsMenu.ShowAll(); rightsMenu.Popup(null, null, null, 3, Gtk.Global.CurrentEventTime); } } break; } } }
/// <summary> /// Event handler for Access Clicked /// </summary> private void OnAccessClicked(object o, EventArgs args) { TreeModel tModel; iFolderAccessDialog accDialog = null; string defaultRights = "ReadWrite"; string userName = null; bool allowOwner = false; TreeSelection tSelect = UserTreeView.Selection; // only allow the changing of the owner if the current // user is the owner and if the selected users are members if (tSelect.CountSelectedRows() == 1) { Array treePaths = tSelect.GetSelectedRows(out tModel); foreach (TreePath tPath in treePaths) { TreeIter iter; if (UserTreeStore.GetIter(out iter, tPath)) { iFolderUser user = (iFolderUser)tModel.GetValue(iter, 0); if (user.FN != null) { userName = user.FN; } else { userName = user.Name; } defaultRights = user.Rights; if ((ifolder.CurrentUserID == ifolder.OwnerID) && (user.State == "Member")) { allowOwner = true; } } break; } } accDialog = new iFolderAccessDialog( topLevelWindow, userName, defaultRights, allowOwner); int rc = accDialog.Run(); accDialog.Hide(); if (rc == -5) { string newrights = accDialog.Rights; string oldOwnerID; Array treePaths = tSelect.GetSelectedRows(out tModel); foreach (TreePath tPath in treePaths) { TreeIter iter; if (UserTreeStore.GetIter(out iter, tPath)) { iFolderUser user = (iFolderUser)tModel.GetValue(iter, 0); try { ifws.SetUserRights(ifolder.ID, user.UserID, newrights); user.Rights = newrights; // if the user selected to make this // use the owner set that right now if (accDialog.IsOwner) { if (ifws.CanOwnerBeChanged(user.UserID, ifolder.DomainID)) { ifws.ChangeOwner(ifolder.ID, user.UserID, "Admin"); // update the objects here instead of // re-reading them, that's expensive! oldOwnerID = ifolder.OwnerID; user.Rights = "Admin"; ifolder.Owner = user.Name; ifolder.OwnerID = user.UserID; // now loop through the users, find // the current owner, and set him to // not be the owner any more TreeIter ownIter; if (UserTreeStore.GetIterFirst(out ownIter)) { do { iFolderUser ownUser = (iFolderUser) UserTreeStore.GetValue(ownIter, 0); if (oldOwnerID == ownUser.UserID) { ownUser.Rights = "Admin"; tModel.SetValue(ownIter, 0, ownUser); break; } }while(UserTreeStore.IterNext(ref ownIter)); } } else { iFolderMsgDialog messdialog = new iFolderMsgDialog( null, iFolderMsgDialog.DialogType.Error, iFolderMsgDialog.ButtonSet.Ok, Util.GS("Policy Violation"), String.Format(Util.GS("Ownership of the iFolder {0} could not be transferred to {1} as it is violating the limit of iFolders set by the Administrator."), ifolder.Name, user.Name), Util.GS(" ")); messdialog.Run(); messdialog.Hide(); messdialog.Destroy(); } } tModel.SetValue(iter, 0, user); } catch (Exception e) { iFolderExceptionDialog ied = new iFolderExceptionDialog( topLevelWindow, e); ied.Run(); ied.Hide(); ied.Destroy(); ied = null; } } } } accDialog.Destroy(); accDialog = null; }
private void OnUserSelectorResponse(object o, ResponseArgs args) { if (UserSelector != null) { switch (args.ResponseId) { case Gtk.ResponseType.Ok: { foreach (MemberInfo member in UserSelector.SelectedUsers) { if (!curUsers.ContainsKey(member.UserID)) { try { /* * try * { * // Add the member to the domain. If the member is * // already a member of the domain, the call will do * // nothing. This call will facilitate the local * // workstation not adding every possible domain user * // to the local workstatin until they've actually * // been added as an iFolder member. * simws.AddMemberToDomain(ifolder.DomainID, * member.Name, * member.UserID, * null, // FIXME: Where should I get the PublicKey? * member.GivenName, * member.FamilyName); * } * catch {} */ iFolderUser newUser = ifws.AddAndInviteUser( ifolder.ID, member.Name, member.GivenName, member.FamilyName, member.UserID, null, "ReadOnly"); TreeIter iter = UserTreeStore.AppendValues(newUser); if (memberFullNames.Contains(newUser.FN)) { // This is a duplicate duplicateMembers[newUser.FN] = 0; } else { memberFullNames[newUser.FN] = 0; } curUsers.Add(newUser.UserID, iter); } catch (Exception e) { iFolderExceptionDialog ied = new iFolderExceptionDialog( topLevelWindow, e); ied.Run(); ied.Hide(); ied.Destroy(); ied = null; break; } } } UserSelector.Hide(); UserSelector.Destroy(); UserSelector = null; break; } case Gtk.ResponseType.Help: { Util.ShowHelp("sharewith.html", topLevelWindow); break; } case Gtk.ResponseType.Cancel: { UserSelector.Hide(); UserSelector.Destroy(); UserSelector = null; break; } } } }
private void refreshData() { newOwnerLvi = null; Cursor = Cursors.WaitCursor; updateDiskQuotaDisplay(); lastSync.Text = currentiFolder.LastSyncTime; syncInterval.Value = (decimal)currentiFolder.SyncInterval; autoSync.Checked = currentiFolder.SyncInterval != Timeout.Infinite; switch (currentiFolder.Role) { case "Master": syncUnits.Visible = autoSync.Visible = syncInterval.Visible = true; syncNow.Enabled = false; syncLabel.Text = resourceManager.GetString("syncLabel.Text"); break; case "Slave": syncUnits.Visible = autoSync.Visible = syncInterval.Visible = false; syncNow.Enabled = true; string units; decimal syncValue = ConvertSecondsToTimeUnit(currentiFolder.EffectiveSyncInterval, out units); syncLabel.Text = string.Format(resourceManager.GetString("slaveSyncInterval"), syncValue, resourceManager.GetString(units)); break; } showConflictMessage(currentiFolder.HasConflicts); try { SyncSize syncSize = ifWebService.CalculateSyncSize(currentiFolder.ID); objectCount.Text = syncSize.SyncNodeCount.ToString(); } catch { if (currentiFolder.Role.Equals("Master")) { objectCount.Text = "0"; } else { objectCount.Text = resourceManager.GetString("unknown"); } } shareWith.Items.Clear(); shareWith.BeginUpdate(); try { lock (subscrHT) { subscrHT.Clear(); } lock (userIDHT) { userIDHT.Clear(); } connectToWebService(); iFolderUser[] ifolderUsers = ifWebService.GetiFolderUsers(currentiFolder.ID); foreach (iFolderUser ifolderUser in ifolderUsers) { if (ifolderUser.UserID.Equals(currentiFolder.CurrentUserID)) { currentUser = ifolderUser; } ListViewItem lvitem = addiFolderUserToListView(ifolderUser); if (ifolderUser.UserID.Equals(currentiFolder.OwnerID)) { ownerLvi = lvitem; } } shareWith.Items[0].Selected = true; } catch (WebException ex) { MyMessageBox mmb = new MyMessageBox(resourceManager.GetString("memberReadError"), resourceManager.GetString("errorTitle"), ex.Message, MyMessageBoxButtons.OK, MyMessageBoxIcon.Error); mmb.ShowDialog(); if (ex.Status == WebExceptionStatus.ConnectFailure) { ifWebService = null; } } catch (Exception ex) { MyMessageBox mmb = new MyMessageBox(resourceManager.GetString("memberReadError"), resourceManager.GetString("errorTitle"), ex.Message, MyMessageBoxButtons.OK, MyMessageBoxIcon.Error); mmb.ShowDialog(); } shareWith.EndUpdate(); add.Enabled = currentUser != null ? currentUser.Rights.Equals("Admin") : false; setLimit.Visible = limitEdit.Visible = currentUser != null ? currentUser.UserID.Equals(currentiFolder.OwnerID) : false; limitLabel.Visible = limit.Visible = !setLimit.Visible; Cursor = Cursors.Default; }
public MemberInfo(iFolderUser user) : this(user, true) { }
private void updateListViewItem(ListViewItem lvi) { ShareListMember slMember = (ShareListMember)lvi.Tag; lvi.SubItems[0].Text = slMember.Name; lvi.SubItems[1].Text = stateToString(slMember.iFolderUser.State, slMember.iFolderUser.IsOwner); lvi.SubItems[2].Text = rightsToString(slMember.iFolderUser.Rights); if (slMember.iFolderUser.UserID.Equals(currentUser.UserID)) { currentUser = slMember.iFolderUser; lvi.ImageIndex = 0; add.Enabled = currentUser.Rights.Equals("Admin"); access.Enabled = access.Enabled ? add.Enabled : false; remove.Enabled = remove.Enabled ? add.Enabled : false; menuFullControl.Enabled = menuReadWrite.Enabled = menuReadOnly.Enabled = menuFullControl.Enabled ? add.Enabled : false; if (slMember.iFolderUser.IsOwner && !ownerLvi.Equals(lvi)) { setLimit.Visible = limitEdit.Visible = true; limitLabel.Visible = limit.Visible = false; ownerLvi.SubItems[1].Text = resourceManager.GetString("user"); ownerLvi = lvi; } } else { lvi.ImageIndex = slMember.iFolderUser.State.Equals(member) ? 1 : 2; } }
public SimiasEvent(string iFolderID, iFolderUser ifldrUser, string UserID, SimiasEventType type) { this.ifUser = ifldrUser; this.ifolderID = iFolderID; this.userID = UserID; this.domainID = null; this.type = type; }
private void nodeEvent(iFolderWeb ifolder, iFolderUser ifolderUser, string eventData) { try { if (ifolder != null) { currentiFolder = ifolder; showConflictMessage(ifolder.HasConflicts); } else if (ifolderUser != null) { ListViewItem lvi; lock (subscrHT) { lvi = (ListViewItem)subscrHT[ifolderUser.ID]; } if (lvi != null) { ShareListMember slMember = (ShareListMember)lvi.Tag; slMember.iFolderUser = ifolderUser; lvi.Tag = slMember; updateListViewItem(lvi); } else if (eventData.Equals("NodeCreated")) { addiFolderUserToListView(ifolderUser); } } else { lock (subscrHT) { ListViewItem lvi = (ListViewItem)subscrHT[eventData]; if (lvi != null) { lvi.Remove(); subscrHT.Remove(eventData); lock (userIDHT) { ListViewItem lvitem = (ListViewItem)userIDHT[((ShareListMember)lvi.Tag).iFolderUser.UserID]; if ((lvitem != null) && (subscrHT[((ShareListMember)lvitem.Tag).iFolderUser.ID] == null)) { userIDHT.Remove(((ShareListMember)lvi.Tag).iFolderUser.UserID); } } } } } } catch { } }
public SimiasEvent(string domainID, SimiasEventType type) { this.ifUser = null; this.ifolderID = null; this.userID = null; this.domainID = domainID; this.type = type; }
/// <summary> /// Event handler that gets called when the delete admin button is clicked. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void OnDeleteButton_Click(object source, EventArgs e) { switch (ActiveAdminTab) { case ListDisplayType.GroupAdmins: string op = "deletesecondaryadmin"; foreach (string memberID in CheckedMembers.Keys) { Response.Redirect( String.Format( "MemberSelect.aspx?op={0}&secondaryadminid={1}", op, memberID)); // delete secondary admin can be done only for one at a time //return; return; } break; case ListDisplayType.PrimaryAdmins: default: foreach (string memberID in CheckedMembers.Keys) { try { iFolderUser user = web.GetUser(memberID); if (user.MemberRights == Rights.Admin) { web.RemoveAdministrator(memberID); } } catch (Exception ex) { string name = CheckedMembers[memberID] as String; TopNav.ShowError(String.Format(GetString("ERRORCANNOTREMOVEADMIN"), name), ex); return; } } // Clear the checked members. CheckedMembers.Clear(); AllAdminsCheckBox.Checked = false; // Disable the action buttons. DeleteButton.Enabled = false; // Rebind the data source with the new data. GetiFolderAdminList(); break; } // Clear the checked members. //CheckedMembers.Clear(); //AllAdminsCheckBox.Checked = false; // Disable the action buttons. //DeleteButton.Enabled = false; // Rebind the data source with the new data. //GetiFolderAdminList(); }
/// <summary> /// Initializes the time of day values in the dropdown list. /// </summary> public void InitializeGroupList() { string Operation = op; //string [] GroupListStr ;//= null; GroupHashTable = new Hashtable(); // Call web-service to get the groups for which this user is secondary admin if (Operation == "ADD") { // This will search only groups from whole domain iFolderUserSet userList = web.GetUsersBySearch( SearchProperty.GroupOnly, SearchOperation.BeginsWith, "*", 0, 0); //string [] GroupStr = new string[ userList.Total ]; string [] MonitoredGroupsIDs = web.GetMonitoredGroups(SecondaryAdmin); GroupList.Items.Add(GetString("NONE")); foreach (iFolderUser user in userList.Items) { if ((MonitoredGroupsIDs == null || MonitoredGroupsIDs.Length == 0) || Array.IndexOf(MonitoredGroupsIDs, user.ID) < 0) { // Add only those groups which are not monitored currently by this secondary admin GroupHashTable[user.FullName] = user.ID; GroupList.Items.Add(user.FullName); } } GroupList.SelectedIndex = 0; } else if (Operation == "EDIT") { // get all groups for which this member is an admin iFolderUser user = web.GetUser(GroupID); if (GroupID != "") { GroupHashTable[user.FullName] = user.ID; GroupList.Items.Add(user.FullName); GroupList.SelectedIndex = 0; GroupList.Enabled = false; long limit = web.GetAggregateDiskQuota(GroupID); if (limit == -1) { AggregateDiskQuotaText.Text = ""; } else { AggregateDiskQuotaText.Text = Utils.ConvertToMBString(limit, false, rm); } ShowSecondaryAdminRights(GroupID); } //AggregateDiskQuotaText.Text = "100"; SaveAdminRights.Enabled = true; } }
private void createChangeEvent(iFolderWeb ifolder, iFolderUser ifolderUser, string eventData) { try { if (ifolder.HasConflicts) { if (preferences.NotifyCollisionEnabled) { ifolderFromNotify = ifolder; string message = string.Format(resourceManager.GetString("collisionMessage"), ifolder.Name); notifyType = NotifyType.Collision; shellNotifyIcon.DisplayBalloonTooltip(resourceManager.GetString("actionRequiredTitle"), message, BalloonType.Info); } } else if (ifolder.State.Equals("Available") && eventData.Equals("NodeCreated")) { if (preferences.NotifyShareEnabled) { ifolderFromNotify = ifolder; string title = string.Format(resourceManager.GetString("subscriptionTitle"), ifolder.Name); string message = string.Format(resourceManager.GetString("subscriptionMessage"), ifolder.Owner); notifyType = NotifyType.Subscription; shellNotifyIcon.DisplayBalloonTooltip(title, message, BalloonType.Info); } } else if (ifolderUser != null) { if (preferences.NotifyJoinEnabled) { ifolderFromNotify = ifolder; string message = string.Format(resourceManager.GetString("newMemberMessage"), (ifolderUser.FN != null) && !ifolderUser.FN.Equals(string.Empty) ? ifolderUser.FN : ifolderUser.Name, ifolder.Name); notifyType = NotifyType.NewMember; shellNotifyIcon.DisplayBalloonTooltip(resourceManager.GetString("newMemberTitle"), message, BalloonType.Info); } } } catch {} }
/// <summary> /// Page Load /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Page_Load(object sender, System.EventArgs e) { // localization rm = (ResourceManager)Application["RM"]; // strings ErrorMessage.Text = GetString("ERROR.MESSAGE"); LoginButton.Text = GetString("LOGIN"); // details StringWriter details = new StringWriter(); // message from query string string message = Request.QueryString.Get("Exception"); if ((message != null) && (message.Length != 0)) { details.WriteLine("Message: {0}", message); details.WriteLine(); } // session additions if (Session != null) { // exception Exception ex = (Exception)Session["Exception"]; if (ex != null) { details.WriteLine("Exception Message: {0}", ex.Message); details.WriteLine("Exception Type: {0}", ex.GetType()); details.WriteLine("Exception Site: {0}", ex.TargetSite); details.WriteLine("Exception Source: {0}", ex.Source); details.WriteLine(); details.WriteLine("Exception Stack:"); details.WriteLine(); details.WriteLine(ex); details.WriteLine(); } // user iFolderUser user = (iFolderUser)Session["User"]; if (user != null) { details.WriteLine("Username: {0}", user.UserName); details.WriteLine("User Full Name: {0}", user.FullName); details.WriteLine(); } // system iFolderSystem system = (iFolderSystem)Session["System"]; if (system != null) { details.WriteLine("System iFolder Name: {0}", system.Name); details.WriteLine("System iFolder Version: {0}", system.Version); details.WriteLine(); } // server iFolderServer server = (iFolderServer)Session["Server"]; if (server != null) { details.WriteLine("Server iFolder Version: {0}", server.Version); details.WriteLine("Server CLR Version: {0}", server.ClrVersion); details.WriteLine("Server Host: {0}", server.HostName); details.WriteLine("Server Machine: {0}", server.MachineName); details.WriteLine("Server Operating System: {0}", server.OSVersion); details.WriteLine("Server Username: {0}", server.UserName); details.WriteLine(); } } // details ErrorDetails.Text = details.ToString(); }
/// <summary> /// Event Handler for Remove User /// </summary> private void OnRemoveUser(object o, EventArgs args) { TreeModel tModel; TreeSelection tSelect = UserTreeView.Selection; if (tSelect.CountSelectedRows() > 0) { iFolderMsgDialog dialog = new iFolderMsgDialog( topLevelWindow, iFolderMsgDialog.DialogType.Question, iFolderMsgDialog.ButtonSet.YesNo, "", Util.GS("Remove the selected users?"), Util.GS("This will remove the selected users from this iFolder. They will no longer be able to synchronize files with this iFolder.")); int rc = dialog.Run(); dialog.Hide(); dialog.Destroy(); if (rc == -8) { Queue iterQueue; Array treePaths = tSelect.GetSelectedRows(out tModel); iterQueue = new Queue(); foreach (TreePath tPath in treePaths) { TreeIter iter; if (UserTreeStore.GetIter(out iter, tPath)) { iterQueue.Enqueue(iter); } } // Now that we have all of the TreeIters, loop and // remove them all while (iterQueue.Count > 0) { TreeIter iter = (TreeIter)iterQueue.Dequeue(); iFolderUser user = (iFolderUser)tModel.GetValue(iter, 0); try { ifws.RemoveiFolderUser(ifolder.ID, user.UserID); UserTreeStore.Remove(ref iter); curUsers.Remove(user.UserID); } catch (Exception e) { iFolderExceptionDialog ied = new iFolderExceptionDialog( topLevelWindow, e); ied.Run(); ied.Hide(); ied.Destroy(); ied = null; } } } } }
private int removedListContains(iFolderUser ifolderUser) { int index = -1; lock (removedList) { for (int i=0; i < removedList.Count; i++) { if (((iFolderUser)removedList[i]).UserID.Equals(ifolderUser.UserID)) { index = i; break; } } } return index; }