protected virtual void OnCancelButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); core.search_group_wid = new SearchGroupWidget(); core.mw.setCurrentWidget(core.search_group_wid); }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { if (password1Entry.Text != "") { llum.Core core = llum.Core.getCore(); string out_response; CookComputing.XmlRpc.XmlRpcStruct new_ret = llum.Core.getCore().xmlrpc.client.change_own_password(core.user_info, "Golem", core.user_info, password1Entry.Text); if (Convert.ToInt32(new_ret["status"]) == 0) { out_response = (string)new_ret["return"]; } else { out_response = (string)new_ret["msg"]; } if (out_response == "true") { msgLabel.Text = Mono.Unix.Catalog.GetString("Password changed successfully"); core.user_info[1] = password1Entry.Text; } else { msgLabel.Text = Mono.Unix.Catalog.GetString("Could not change password.") + "\n Error: " + out_response; } } }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); System.Collections.Generic.List <string> ret = new System.Collections.Generic.List <string>(); string result; bool error = false; foreach (LdapUser user in to_demote_list) { result = core.xmlrpc.del_teacher_from_admins(user.uid); ret.Add(user.uid + ":" + result + "\n"); if (!result.Contains("true")) { error = true; } } if (error) { string txt = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Some errors where found when executing the demoting operation:") + "\n"; foreach (string str in ret) { txt += str; } txt += "</span>"; } else { msgLabel.Markup = "<b>" + Mono.Unix.Catalog.GetString("Users were succesfully demoted") + "</b>"; } acceptButton.Sensitive = false; }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); string ret = ""; string user_uid = ""; foreach (LdapUser user in to_promote_list) { ret = core.xmlrpc.add_teacher_to_admins(user.uid); Console.WriteLine(ret); user_uid = user.uid; if (ret != "true") { break; } } if (ret != "true") { msgLabel.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("There was an error when promoting") + " " + user_uid + ":\n" + ret + "</span>"; } else { msgLabel.Text = Mono.Unix.Catalog.GetString("Users successfully promoted to admins"); } acceptButton.Sensitive = false; }
protected virtual void OnDemoteButtonClicked(object sender, System.EventArgs e) { Gtk.TreePath[] path_array = userTreeview.Selection.GetSelectedRows(); selected_user_list = new System.Collections.Generic.List <llum.LdapUser>(); foreach (Gtk.TreePath path in path_array) { Gtk.TreeIter iter; store.GetIter(out iter, path); string uid = (string)store.GetValue(iter, 0); foreach (llum.LdapUser u in user_list) { if (u.uid == uid) { selected_user_list.Add(u); } } } llum.Core core = llum.Core.getCore(); core.demote_users_wid = new DemoteUserWidget(selected_user_list, "users"); core.mw.setCurrentWidget(core.demote_users_wid); }
protected virtual void OnEditButtonClicked(object sender, System.EventArgs e) { //userTreeview.Selection.GetSelected(out iter); Gtk.TreePath[] path_array = userTreeview.Selection.GetSelectedRows(); if (path_array.Length == 1) { Gtk.TreeIter iter; store.GetIter(out iter, path_array[0]); //Console.WriteLine(store.GetValue(iter,0)); LdapUser return_user = null; foreach (LdapUser user in user_list) { if (user.uid == (string)store.GetValue(iter, 0)) { return_user = user; break; } } llum.Core core = llum.Core.getCore(); core.edit_user_wid = new EditUser(return_user); core.mw.setCurrentWidget(core.edit_user_wid); } }
protected virtual void OnDeleteButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); core.delete_users_wid = new DeleteUserWidget(to_delete, "users"); core.mw.setCurrentWidget(core.delete_users_wid); }
protected virtual void OnCancelDeleteButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); core.search_user = new SearchUser(false); core.mw.setCurrentWidget(core.search_user); }
protected virtual void OnCancelButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); switch (back_to) { case "users": core.search_user = new SearchUser(false); core.mw.setCurrentWidget(core.search_user); break; case "groups": core.search_group_wid = new SearchGroupWidget(); core.mw.setCurrentWidget(core.search_group_wid); break; } }
protected virtual void OnDeleteGroupsButtonClicked(object sender, System.EventArgs e) { Gtk.TreePath[] path_array = userTreeview.Selection.GetSelectedRows(); System.Collections.Generic.List <LdapGroup> return_group_list = new System.Collections.Generic.List <llum.LdapGroup>(); foreach (Gtk.TreePath path in path_array) { Gtk.TreeIter iter; store.GetIter(out iter, path); string gid = (string)store.GetValue(iter, 0); foreach (LdapGroup grp in group_list) { if (grp.gid == gid) { return_group_list.Add(grp); break; } } } llum.Core core = llum.Core.getCore(); core.delete_groups_wid = new DeleteGroupsWidget(return_group_list); core.mw.setCurrentWidget(core.delete_groups_wid); }
protected virtual void OnSearchEntryChanged(object sender, System.EventArgs e) { store.Clear(); llum.Core core = llum.Core.getCore(); group_list = core.xmlrpc.get_available_groups_info(); string filter; if (searchEntry.Text.Contains("*")) { filter = searchEntry.Text.ToLower().Replace("*", ""); } else { filter = searchEntry.Text.ToLower(); } foreach (llum.LdapGroup grp in group_list) { //if((searchEntry.Text.ToLower().Contains(grp.description.ToLower())) || (searchEntry.Text.ToLower().Contains(grp.gid.ToLower()))) if (grp.description.ToLower().Contains(filter) || grp.gid.Contains(filter)) { store.AppendValues(grp.gid, grp.description); } } }
protected virtual void OnApplyPasswordButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); llum.Core.getCore().progress_window = new ProgressWindow(Mono.Unix.Catalog.GetString("Changing User passwords...")); llum.Core.getCore().progress_window.ShowAll(); llum.Core.getCore().progress_window.ShowNow(); System.Collections.Generic.List <string> ret = new System.Collections.Generic.List <string>(); System.Threading.Thread thread = null; System.Threading.ThreadStart progressTStart = delegate { System.Collections.Generic.List <LdapUser> user_list = core.xmlrpc.light_get_user_list(); bool error = false; foreach (LdapUser user in user_list) { if (opened_group.member_list.Contains(user.uid)) { string result = core.xmlrpc.change_password(user.path, passwordEntry.Text, false); ret.Add(user.uid + ":" + result + "\n"); if (!result.Contains("true")) { error = true; } } } string txt = ""; Gtk.Application.Invoke(delegate { if (!error) { msgLabel.Markup = "<b>" + Mono.Unix.Catalog.GetString("Passwords were successfully changed") + "</b>"; } else { txt = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Some errors were found when changing passwords:") + "\n"; foreach (string str in ret) { txt += str; } txt += "</span>"; msgLabel.Markup = txt; } core.progress_window.Hide(); }); }; thread = new System.Threading.Thread(progressTStart); thread.Start(); }
protected virtual void OnDeleteUsersButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); System.Collections.Generic.List <LdapUser> delete_user_list = new System.Collections.Generic.List <LdapUser>(); System.Collections.Generic.List <LdapUser> user_list = core.xmlrpc.get_user_list(); Gtk.TreePath[] path_array = userTreeview.Selection.GetSelectedRows(); System.Collections.Generic.List <string> grp_user_list = new System.Collections.Generic.List <string>(); foreach (Gtk.TreePath path in path_array) { Gtk.TreeIter iter; store.GetIter(out iter, path); string gid = (string)store.GetValue(iter, 0); foreach (LdapGroup grp in group_list) { if (grp.gid == gid) { foreach (string str in grp.member_list) { if (!grp_user_list.Contains(str)) { grp_user_list.Add(str); } } break; } } } foreach (string str in grp_user_list) { foreach (LdapUser user in user_list) { if (user.uid == str) { if (user.main_group == "students" || user.main_group == "teachers") { user.ok_to_delete = true; } delete_user_list.Add(user); break; } } } core.delete_users_wid = new DeleteUserWidget(delete_user_list, "groups"); core.mw.setCurrentWidget(core.delete_users_wid); }
protected virtual void OnDeleteUsersButtonClicked(object sender, System.EventArgs e) { Gtk.TreePath[] path_array = userTreeview.Selection.GetSelectedRows(); selected_user_list = new System.Collections.Generic.List <llum.LdapUser>(); foreach (Gtk.TreePath path in path_array) { Gtk.TreeIter iter; store.GetIter(out iter, path); string uid = (string)store.GetValue(iter, 0); foreach (llum.LdapUser u in user_list) { if (u.uid == uid) { switch (u.main_group) { case "students": u.ok_to_delete = true; break; case "teachers": if (llum.Core.getCore().user_group == "admin" || llum.Core.getCore().user_group == "promoted-teacher") { u.ok_to_delete = true; } else { u.ok_to_delete = false; } break; case "admin": u.ok_to_delete = false; break; case "others": u.ok_to_delete = true; break; } selected_user_list.Add(u); } } } llum.Core core = llum.Core.getCore(); core.delete_users_wid = new DeleteUserWidget(selected_user_list, "users"); core.mw.setCurrentWidget(core.delete_users_wid); }
protected virtual void OnRemoveGroupButtonClicked(object sender, System.EventArgs e) { Gtk.TreePath[] path_array = belongTreeview.Selection.GetSelectedRows(); System.Collections.Generic.List <string> ret_list = new System.Collections.Generic.List <string>(); llum.Core core = llum.Core.getCore(); bool error_found = false; if (path_array.Length > 0) { foreach (Gtk.TreePath path in path_array) { Gtk.TreeIter iter = new Gtk.TreeIter(); belong_store.GetIter(out iter, path); string ret = core.xmlrpc.remove_from_group(user.uid, Convert.ToString(belong_store.GetValue(iter, 0))); ret_list.Add(Convert.ToString(belong_store.GetValue(iter, 0)) + ": " + ret + "\n"); if (ret == "true") { //available_store.AppendValues(belong_store.GetValue(iter,0)); user.groups.Remove(Convert.ToString(belong_store.GetValue(iter, 0))); //belong_store.Remove(ref iter); } else { error_found = true; } } if (!error_found) { msgLabel.Markup = "<b>" + Mono.Unix.Catalog.GetString("Group modification successful") + "</b>"; } else { string msg = "<span foreground='red'> Error:\n"; foreach (string str in ret_list) { msg += str; } msg += "</span>"; msgLabel.Markup = msg; } populateTrees(); } }
protected virtual void OnApplyDescriptionButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); string ret = core.xmlrpc.change_group_description(opened_group.gid, descriptionEntry.Text); if (ret == "true") { msgLabel.Text = Mono.Unix.Catalog.GetString("Description changed succesfully"); opened_group.description = descriptionEntry.Text; } else { msgLabel.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("There was an error changing group description") + ":\n" + ret + "</span>"; } }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); CookComputing.XmlRpc.XmlRpcStruct properties = new CookComputing.XmlRpc.XmlRpcStruct(); properties["cn"] = nameEntry.Text; properties["description"] = descriptionEntry.Text; properties["x-lliurex-grouptype"] = "generic"; string ret = core.xmlrpc.add_group(properties); if (ret == "true") { msgLabel.Markup = "<b>" + Mono.Unix.Catalog.GetString("Group successfully added") + "</b>"; } else { msgLabel.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("An error was found when adding group:") + "\n" + ret + "</span>"; } }
protected void OnButton1Clicked(object sender, EventArgs e) { try{ if (!user_available) { } if (pwd_entry.Text == pwd_entry2.Text) { llum.Core core = llum.Core.getCore(); core.xmlrpc.change_password(dn_entry.Text, pwd_entry.Text, false); msg_label.Markup = "<b>" + Mono.Unix.Catalog.GetString("Password changed successfully") + "</b>"; } else { msg_label.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Passwords do not match") + "</span>"; } } catch { } }
protected virtual void OnPromoteButtonClicked(object sender, System.EventArgs e) { Gtk.TreePath[] path_array = userTreeview.Selection.GetSelectedRows(); System.Collections.Generic.List <LdapUser> user_list = llum.Core.getCore().xmlrpc.get_user_list(); System.Collections.Generic.List <LdapUser> ret_user_list = new System.Collections.Generic.List <LdapUser>(); foreach (Gtk.TreePath path in path_array) { Gtk.TreeIter iter; store.GetIter(out iter, path); string gid = (string)store.GetValue(iter, 0); foreach (LdapGroup grp in group_list) { if (grp.gid == gid) { foreach (string user in grp.member_list) { foreach (LdapUser luser in user_list) { if (luser.uid == user) { ret_user_list.Add(luser); break; } } } break; } } } llum.Core core = llum.Core.getCore(); core.promote_users_wid = new PromoteUserWidget(ret_user_list, "groups"); core.mw.setCurrentWidget(core.promote_users_wid); }
protected virtual void OnNameEntryChanged(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); nameEntry.Text = core.strip_special_chars(nameEntry.Text); bool result = false; if (nameEntry.Text.Length > 0) { int test; string last_char = "" + nameEntry.Text[nameEntry.Text.Length - 1]; result = int.TryParse(last_char, out test); } if (nameEntry.Text.Length > 0) { if (result) { acceptButton.Sensitive = false; msgLabel.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Groups cannot end with a numerical character") + "</span>"; } else { msgLabel.Text = ""; acceptButton.Sensitive = true; } } if (nameEntry.Text.Length > 0 && descriptionEntry.Text.Length > 0 && !result) { acceptButton.Sensitive = true; } else { acceptButton.Sensitive = false; } }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { System.Threading.Thread thread = null; string msg = ""; if (deleteUsersCheckbutton.Active) { msg = Mono.Unix.Catalog.GetString("Deleting groups and users..."); } else { msg = Mono.Unix.Catalog.GetString("Deleting groups only..."); } llum.Core.getCore().progress_window = new ProgressWindow(msg); llum.Core.getCore().progress_window.ShowAll(); llum.Core.getCore().progress_window.ShowNow(); System.Threading.ThreadStart progressTStart = delegate { llum.Core core = llum.Core.getCore(); System.Collections.Generic.List <string> ret = new System.Collections.Generic.List <string>(); bool error = false; // DELETE GROUPS foreach (LdapGroup grp in group_list) { string ret_str = core.xmlrpc.delete_group(grp.gid); ret.Add(grp.gid + ":" + ret_str + "\n"); if (!ret_str.Contains("true")) { error = true; } } // DELETE USERS if (deleteUsersCheckbutton.Active) { Console.WriteLine("[DeleteGroupsWidget] Deleting users..."); bool delete_data = this.delete_checkbutton.Active; foreach (LdapUser user in user_list) { string ret_str = ""; switch (user.main_group) { case "students": ret_str = core.xmlrpc.delete_student(user.uid, delete_data); break; case "teachers": ret_str = core.xmlrpc.delete_teacher(user.uid, delete_data); break; case "others": ret_str = core.xmlrpc.delete_other(user.uid, delete_data); break; default: break; } ret.Add(user.uid + ":" + ret_str + "\n"); if (!ret_str.Contains("true")) { error = true; } } } else { Console.WriteLine("[DeleteGroupsWidget] Users won't be removed"); } Gtk.Application.Invoke(delegate { string msg_label = ""; if (error) { msg_label = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Errors were found when deleting groups:") + "\n"; foreach (string str in ret) { msg_label += str; } msg_label += "</span>"; } else { msg_label = "<b>" + Mono.Unix.Catalog.GetString("Group Deletion successful") + "</b>"; } msgLabel.Markup = msg_label; acceptButton.Sensitive = false; Core.getCore().progress_window.Hide(); }); }; thread = new System.Threading.Thread(progressTStart); thread.Start(); }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { System.Threading.Thread thread = null; string msg2 = ""; msg2 = Mono.Unix.Catalog.GetString("Creating generic users..."); llum.Core.getCore().progress_window = new ProgressWindow(msg2); llum.Core.getCore().progress_window.ShowAll(); llum.Core.getCore().progress_window.ShowNow(); System.Threading.ThreadStart progressTStart = delegate { //ACTIONS llum.Core core = llum.Core.getCore(); Gtk.TreeIter iter; templateCombobox.GetActiveIter(out iter); string template = (string)store.GetValue(iter, 1); int number = (int)numberSpinbutton.Value; string group_cn = groupCombobox.ActiveText; string generic_name = genericNameEntry.Text; string password = ""; int option = core.xmlrpc.RANDOM_PASSWORDS; if (sameAsUserRadiobutton.Active) { option = core.xmlrpc.PASS_EQUALS_USER; } if (setPasswordRadiobutton.Active) { option = core.xmlrpc.SAME_PASSWORD; password = passwordEntry.Text; } if (randomPasswordradiobutton.Active) { option = core.xmlrpc.RANDOM_PASSWORDS; } System.Collections.Generic.List <string> ret = core.xmlrpc.add_generic_users(template, group_cn, number, generic_name, option, password); Gtk.Application.Invoke(delegate { string msg = "\n<b>" + Mono.Unix.Catalog.GetString("The following users were created:") + "\n"; foreach (string str in ret) { msg += "[*] " + str + "\n"; } msg += "</b>"; msgLabel.Markup = msg; Core.getCore().progress_window.Hide(); }); }; thread = new System.Threading.Thread(progressTStart); thread.Start(); }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { System.Threading.Thread thread = null; bool error = false; llum.Core.getCore().progress_window = new ProgressWindow(Mono.Unix.Catalog.GetString("Deleting users...")); llum.Core.getCore().progress_window.ShowAll(); llum.Core.getCore().progress_window.ShowNow(); bool delete_data = this.delete_checkbutton.Active; //thread2=new System.Threading.Thread(tstart); //thread2.Start(); System.Threading.ThreadStart progressTStart = delegate { foreach (llum.LdapUser user in to_delete_user_list) { //Console.WriteLine("Deleting " + user.uid); llum.Core core = llum.Core.getCore(); string ret = ""; switch (user.main_group) { case "students": ret = core.xmlrpc.delete_student(user.uid, delete_data); break; case "teachers": ret = core.xmlrpc.delete_teacher(user.uid, delete_data); break; } if (ret != "true") { Gtk.Application.Invoke(delegate { msgLabel.Markup = "<span foreground='red'> Error: " + ret + "</span>"; error = true; }); break; } } if (!error) { Gtk.Application.Invoke(delegate { msgLabel.Markup = "<b>" + Mono.Unix.Catalog.GetString("Deletion successful") + "</b>"; acceptButton.Sensitive = false; cancelButton.Label = Mono.Unix.Catalog.GetString("Go back"); }); } Core.getCore().progress_window.Hide(); //thread2.Abort(); }; thread = new System.Threading.Thread(progressTStart); thread.Start(); }
protected virtual void OnDoitButtonClicked(object sender, System.EventArgs e) { System.Threading.Thread thread = null; string msg2 = ""; msg2 = Mono.Unix.Catalog.GetString("Cleaning /home directories..."); llum.Core.getCore().progress_window = new ProgressWindow(msg2); llum.Core.getCore().progress_window.ShowAll(); llum.Core.getCore().progress_window.ShowNow(); System.Threading.ThreadStart progressTStart = delegate { //ACTIONS llum.Core core = llum.Core.getCore(); System.Collections.Generic.List <string> ret = new System.Collections.Generic.List <string>(); switch (optionCombobox.Active) { case 0: //ret=core.xmlrpc.delete_students(); ret = core.xmlrpc.empty_students(); break; case 1: //ret=core.xmlrpc.delete_teachers(); ret = core.xmlrpc.empty_teachers(); break; case 2: //ret=core.xmlrpc.delete_all(); ret = core.xmlrpc.empty_others(); break; case 3: ret = core.xmlrpc.empty_all(); break; } Gtk.Application.Invoke(delegate { bool ok = true; foreach (string str in ret) { Console.WriteLine(str); if (!str.Contains(":true")) { ok = false; } } string msg = ""; if (ok) { msg = "<b>" + Mono.Unix.Catalog.GetString("Deletion successful") + "</b>"; } else { msg = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("There was an error when deleting homes") + ":\n"; foreach (string str in ret) { msg += str + "\n"; } msg += "</span>"; } msgLabel.Markup = msg; llum.Core.getCore().progress_window.Hide(); }); }; thread = new System.Threading.Thread(progressTStart); thread.Start(); }
protected virtual void OnAcceptButtonClicked(object sender, System.EventArgs e) { Gtk.TreeIter iter; templateCombobox.GetActiveIter(out iter); llum.Core core = llum.Core.getCore(); string ret = ""; CookComputing.XmlRpc.XmlRpcStruct user_properties = new CookComputing.XmlRpc.XmlRpcStruct(); user_properties["uid"] = uidEntry.Text; user_properties["cn"] = nameEntry.Text; user_properties["sn"] = surnameEntry.Text; user_properties["userPassword"] = passwordEntry.Text; switch ((int)store.GetValue(iter, 1)) { case 0: //Students if (niaEntry.Text != "") { user_properties["x-lliurex-usertype"] = "itaca"; user_properties["x-lliurex-nia"] = niaEntry.Text; } else { user_properties["x-lliurex-usertype"] = "generic"; } ret = core.xmlrpc.add_user("Students", user_properties); if (ret.Contains("true:")) { msgLabel.Text = Mono.Unix.Catalog.GetString("User created successfully"); acceptButton.Sensitive = false; } else { msgLabel.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Error creating user: "******"</span>"; } break; case 1: //Teachers if (dniEntry.Text != "") { user_properties["x-lliurex-usertype"] = "itaca"; user_properties["x-lliurex-nif"] = dniEntry.Text; } else { user_properties["x-lliurex-usertype"] = "generic"; } ret = core.xmlrpc.add_user("Teachers", user_properties); if (ret.Contains("true:")) { msgLabel.Markup = "<b>" + Mono.Unix.Catalog.GetString("User created successfully") + "</b>"; acceptButton.Sensitive = false; } else { msgLabel.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Error creating user: "******"</span>"; } break; case 2: //Other if (dniEntry.Text != "") { user_properties["x-lliurex-nif"] = dniEntry.Text; } user_properties["x-lliurex-usertype"] = "generic"; ret = core.xmlrpc.add_user("Others", user_properties); if (ret.Contains("true:")) { msgLabel.Text = Mono.Unix.Catalog.GetString("User created successfully"); acceptButton.Sensitive = false; } else { msgLabel.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("Error creating user: "******"</span>"; } break; default: break; } if (ret.Contains("true:")) { Gtk.TreeIter iter2; groupCombobox.GetActiveIter(out iter2); switch ((int)groups_store.GetValue(iter2, 1)) { case 1: try { Console.WriteLine("5"); core.xmlrpc.add_to_group((string)user_properties["uid"], (string)groups_store.GetValue(iter2, 0)); } catch { } break; default: break; } } }
protected virtual void OnAddUserButtonClicked(object sender, System.EventArgs e) { Gtk.TreeIter iter; Gtk.TreePath[] path_array = otherUsersTreeview.Selection.GetSelectedRows(); llum.Core core = llum.Core.getCore(); System.Collections.Generic.List <string> ret_list = new System.Collections.Generic.List <string>(); System.Collections.Generic.List <string> user_list = new System.Collections.Generic.List <string>(); foreach (Gtk.TreePath path in path_array) { available_users_store.GetIter(out iter, path); bool ok = true; foreach (LdapGroup grp in group_list) { if ((string)available_users_store.GetValue(iter, 0) == grp.gid) { ok = false; } } if (ok) { if (!opened_group.member_list.Contains((string)available_users_store.GetValue(iter, 0))) { //LDAP OPERATION HERE string return_str = core.xmlrpc.add_to_group((string)available_users_store.GetValue(iter, 0), opened_group.gid); ret_list.Add(return_str); user_list.Add((string)available_users_store.GetValue(iter, 0)); ///////////////////// if (return_str == "true") { opened_group.member_list.Add((string)available_users_store.GetValue(iter, 0)); } } } } populate_others_treeview(); populate_users_treeview(); string err = ""; bool error_found = false; int count = 0; foreach (string str in ret_list) { if (!str.Contains("true")) { error_found = true; int count2 = 0; string user = ""; foreach (string str2 in user_list) { if (count2 == count) { user = str2; break; } count2++; } err += user + ": " + str + "\n"; } count++; } if (!error_found) { msgLabel.Markup = "<b>" + Mono.Unix.Catalog.GetString("Users were added to this group successfully") + "</b>"; } else { string msg = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("The following errors were returned: ") + err + "</span>"; msgLabel.Markup = msg; } }
public EditGroupWidget(LdapGroup grp) { this.Build(); applyPasswordButton.Sensitive = false; opened_group = grp; llum.Core core = llum.Core.getCore(); gidLabel.Text = grp.gid; gidNumberLabel.Text = grp.gid_number; descriptionEntry.Text = grp.description; group_list = core.xmlrpc.get_available_groups_info(); System.Collections.Generic.List <LdapUser> all_list = core.xmlrpc.light_get_user_list(); System.Collections.Generic.List <string> usr_name = new System.Collections.Generic.List <string>(); foreach (LdapUser u in all_list) { usr_name.Add(u.uid); } LdapGroup all_grp = new LdapGroup("[[ALL]]", "1", "1", usr_name, ""); group_list.Insert(0, all_grp); combo_store = new Gtk.ListStore(typeof(string), typeof(string)); combo_store.AppendValues(Mono.Unix.Catalog.GetString("All"), "%All%"); foreach (LdapGroup tmp_grp in group_list) { if (tmp_grp.gid_number != grp.gid_number) { combo_store.AppendValues(tmp_grp.gid, tmp_grp.gid_number); } } Gtk.TreeViewColumn users_in_group_column = new Gtk.TreeViewColumn(); users_in_group_column.Title = Mono.Unix.Catalog.GetString("Users in this group"); Gtk.CellRendererText users_in_group_cell = new Gtk.CellRendererText(); users_in_group_column.PackStart(users_in_group_cell, true); users_in_group_column.AddAttribute(users_in_group_cell, "text", 0); usersInGroupTreeview.AppendColumn(users_in_group_column); users_in_group_store = new Gtk.TreeStore(typeof(string)); usersInGroupTreeview.Model = users_in_group_store; usersInGroupTreeview.Selection.Mode = Gtk.SelectionMode.Multiple; populate_users_treeview(); Gtk.TreeViewColumn available_users_column = new Gtk.TreeViewColumn(); available_users_column.Title = Mono.Unix.Catalog.GetString("Available users"); Gtk.CellRendererText available_users_cell = new Gtk.CellRendererText(); available_users_column.PackStart(available_users_cell, true); available_users_column.AddAttribute(available_users_cell, "text", 0); otherUsersTreeview.AppendColumn(available_users_column); available_users_store = new Gtk.TreeStore(typeof(string)); otherUsersTreeview.Model = available_users_store; otherUsersTreeview.Selection.Mode = Gtk.SelectionMode.Multiple; populate_others_treeview(); }
public EditUser(LdapUser user) { this.Build(); this.user = user; if ((llum.Core.getCore().user_group != "admin") && (llum.Core.getCore().user_group != "promoted-teacher")) { //expander1.Sensitive=false; nameEntry.Sensitive = false; surnameEntry.Sensitive = false; undoButton.Sensitive = false; applyButton.Sensitive = false; addGroupButton.Sensitive = false; removeGroupButton.Sensitive = false; } if (this.user.main_group == "admin") { expander1.Sensitive = false; } uidLabel.Text = user.uid; uidNumLabel.Text = user.uidn; groupLabel.Text = user.main_group; nameEntry.Text = user.name; surnameEntry.Text = user.surname; //changePasswordButton.Sensitive=false; niaEntry.Text = user.nia; dniEntry.Text = user.dni; llum.Core core = llum.Core.getCore(); switch (user.main_group) { case "students": dniEntry.Sensitive = false; if (niaEntry.Text != "" && (core.user_group != "admin" || core.user_group != "promoted-teacher")) { niaButton.Hide(); niaEntry.Sensitive = false; } break; case "teachers": niaEntry.Sensitive = false; if (dniEntry.Text != "" && (core.user_group != "admin" || core.user_group != "promoted-teacher")) { niaButton.Hide(); dniEntry.Sensitive = false; } break; default: niaButton.Sensitive = false; niaEntry.Sensitive = false; dniEntry.Sensitive = false; niaButton.Hide(); break; } belongTreeview.Selection.Mode = Gtk.SelectionMode.Multiple; belong_store = new Gtk.TreeStore(typeof(string)); Gtk.TreeViewColumn belong_column = new Gtk.TreeViewColumn(); belong_column.Title = Mono.Unix.Catalog.GetString("Belongs to"); Gtk.CellRendererText cell = new Gtk.CellRendererText(); belong_column.PackStart(cell, true); belong_column.AddAttribute(cell, "text", 0); belongTreeview.AppendColumn(belong_column); //Console.WriteLine(user.groups.Length); belongTreeview.Model = belong_store; belongTreeview.ShowAll(); availableTreeview.Selection.Mode = Gtk.SelectionMode.Multiple; available_store = new Gtk.TreeStore(typeof(string)); Gtk.TreeViewColumn available_column = new Gtk.TreeViewColumn(); available_column.Title = Mono.Unix.Catalog.GetString("Available groups"); Gtk.CellRendererText available_cell = new Gtk.CellRendererText(); available_column.PackStart(available_cell, true); available_column.AddAttribute(available_cell, "text", 0); availableTreeview.AppendColumn(available_column); availableTreeview.Model = available_store; availableTreeview.ShowAll(); //llum.Core core=llum.Core.get populateTrees(); }
protected void OnFixAclsButtonClicked(object sender, System.EventArgs e) { string msg2 = Mono.Unix.Catalog.GetString("Fixing /net ACLs..."); llum.Core core = llum.Core.getCore(); core.xmlrpc.restore_acls_via_thread(); core.progress_window = new ProgressWindow(msg2); core.progress_window.ShowAll(); core.progress_window.ShowNow(); int status; System.Threading.ThreadStart progressTStart = delegate { status = core.xmlrpc.is_acl_thread_alive(); while (status == 0) { Thread.Sleep(10000); status = core.xmlrpc.is_acl_thread_alive(); } Gtk.Application.Invoke(delegate { if (status == 1) { msg_label.Markup = "<b>" + Mono.Unix.Catalog.GetString("ACLs restored") + "</b>"; } else { msg_label.Markup = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("ACLs restoration failed") + "</span>"; } llum.Core.getCore().progress_window.Hide(); }); }; /* * * llum.Core.getCore().progress_window=new ProgressWindow(msg2); * llum.Core.getCore().progress_window.ShowAll(); * llum.Core.getCore().progress_window.ShowNow(); * * * * * System.Threading.ThreadStart progressTStart = delegate * { * bool ok=true; * try * { * //llum.Core.getCore().xmlrpc.regenerate_net_files(); * * llum.Core.getCore().xmlrpc.restore_acls(); * * * } * catch(Exception acl_ex) * { * ok=false; * Console.WriteLine(acl_ex); * } * * Gtk.Application.Invoke(delegate{ * * * if(ok) * msg_label.Markup="<b>"+Mono.Unix.Catalog.GetString("ACLs restored")+"</b>"; * else * msg_label.Markup="<span foreground='red'>" + Mono.Unix.Catalog.GetString("ACLs restoration failed") + "</span>"; * * llum.Core.getCore().progress_window.Hide(); * * }); * * * * }; * */ System.Threading.Thread thread; thread = new System.Threading.Thread(progressTStart); thread.Start(); }
protected virtual void OnConnectButtonClicked(object sender, System.EventArgs e) { llum.Core core = llum.Core.getCore(); string[] user_info = { userEntry.Text, passwordEntry.Text }; try { string ret; CookComputing.XmlRpc.XmlRpcStruct new_ret = core.xmlrpc.client.login(user_info, "Golem", user_info); if (Convert.ToInt32(new_ret["status"]) == 0) { ret = Convert.ToString(new_ret["return"]); } else { ret = "false"; } if (ret.Contains("true")) { core.mw.statusText = Mono.Unix.Catalog.GetString("Connected to LDAP as: ") + userEntry.Text; //core.function_list=core.xmlrpc.client.get_students_function_list(user_info,"Golem"); //Console.WriteLine(core.xmlrpc.client.get_students_function_list(user_info,"Golem")); string[] tmp = ret.Split(' '); // tmp[1] contains group type [ students, teachers, admin, others ] CookComputing.XmlRpc.XmlRpcStruct function_response; core.user_info = user_info; switch (tmp[1]) { case "admin": //function_response=core.xmlrpc.client.get_admin_function_list(user_info,"Golem"); //Console.WriteLine(function_response["return"]); //foreach(string str in (string[])function_response["return"]) // Console.WriteLine(str); //core.function_list=()function_response["return"]; core.set_function_list("admin"); core.user_group = "admin"; break; case "promoted-teacher": //core.function_list=core.xmlrpc.client.get_teachers_function_list(user_info,"Golem"); core.set_function_list("admin"); core.user_group = "promoted-teacher"; break; case "students": //function_response=core.xmlrpc.client.get_students_function_list(user_info,"Golem"); //core.function_list=function_response["return"]; core.set_function_list("students"); core.user_group = "students"; break; case "teachers": //core.function_list=core.xmlrpc.client.get_teachers_function_list(user_info,"Golem"); core.set_function_list("teachers"); core.user_group = "teachers"; break; case "others": //core.function_list=core.xmlrpc.client.get_others_function_list(user_info,"Golem"); core.set_function_list("others"); core.user_group = "others"; break; default: break; } /* * Console.WriteLine("[LoginWidget] Available functions:"); * foreach(string str in core.function_list) * { * Console.WriteLine("\t*Function " + str); * } * Console.WriteLine(); */ } else { core.mw.statusText = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("User and/or password are incorrect.") + "\n" + "RET: " + ret + "</span>"; } } catch (Exception excp) { Console.WriteLine(core.server); Console.WriteLine(excp); core.mw.statusText = "<span foreground='red'>" + Mono.Unix.Catalog.GetString("There was an error trying to connect to the n4d(XMLRPC) server") + "</span>"; } }