source: llum/trunk/fuentes/llum/ResetPasswordsWidget.cs @ 376

Last change on this file since 376 was 376, checked in by hectorgh, 4 years ago

adding project files

File size: 3.6 KB
Line 
1
2using System;
3
4namespace llum
5{
6
7
8        [System.ComponentModel.ToolboxItem(true)]
9        public partial class ResetPasswordsWidget : Gtk.Bin
10        {
11                public Gtk.Image image;
12                public Gtk.Label label;
13                public ResetPasswordsWidget ()
14                {
15                        this.Build ();
16                       
17                        image=new Gtk.Image();
18                        image.SetFromIconName("gtk-dialog-authentication",Gtk.IconSize.Dnd);
19                        image.Show();
20                        label=new Gtk.Label(Mono.Unix.Catalog.GetString("Reset passwords"));
21                        label.Show();
22                       
23                }
24
25                protected virtual void OnResetButtonClicked (object sender, System.EventArgs e)
26                {
27
28                        System.Threading.Thread thread=null;
29                        string msg2="";
30                        msg2=Mono.Unix.Catalog.GetString("Resetting passwords...");
31                                               
32                        llum.Core.getCore().progress_window=new ProgressWindow(msg2);
33                        llum.Core.getCore().progress_window.ShowAll();
34                        llum.Core.getCore().progress_window.ShowNow();                 
35                       
36                        System.Threading.ThreadStart progressTStart = delegate 
37                        {
38                                //ACTIONS
39                               
40                                System.Collections.Generic.List<llum.LdapUser> list=llum.Core.getCore().xmlrpc.get_user_list();
41                                System.Collections.Generic.List<string> ret=new System.Collections.Generic.List<string>();
42                                if(studentsRadiobutton.Active)
43                                {
44                                        Console.WriteLine("Regenerating students passwords");
45                                        foreach(llum.LdapUser user in list)
46                                        {
47                                                if(user.main_group=="students")
48                                                {
49                                                        ret.Add(llum.Core.getCore().xmlrpc.change_password(user.path,generate_password(5),true));
50                                                       
51                                                }
52               
53                                        }
54
55                                }
56                                else if(teachersRadiobutton.Active)
57                                {
58                                        Console.WriteLine("Regenerating teachers passwords");
59                                        foreach(llum.LdapUser user in list)
60                                        {
61                                                if(user.main_group=="teachers")
62                                                {
63                                                        ret.Add(llum.Core.getCore().xmlrpc.change_teacher_password(user.path,generate_password(5),user.uid,user.name,user.surname,true));
64                                                }
65               
66                                        }
67                                }
68                                else
69                                {
70                                        // ALL USERS
71                                        Console.WriteLine("Regenerating all passwords");
72                                        foreach(llum.LdapUser user in list)
73                                        {
74                                                if(user.main_group=="students")
75                                                {
76                                                        ret.Add(llum.Core.getCore().xmlrpc.change_password(user.path,generate_password(5),true));
77                                                }
78                                                if(user.main_group=="teachers")
79                                                {
80                                                        ret.Add(llum.Core.getCore().xmlrpc.change_teacher_password(user.path,generate_password(5),user.uid,user.name,user.surname,true));
81                                                }
82               
83                                        }
84                                }
85                                                                       
86                               
87                               
88                               
89                                Gtk.Application.Invoke(delegate{
90                                       
91                                        bool ok=true;
92                                       
93                                        foreach(string str in ret)
94                                        {
95                                                if(!str.Contains("true"))
96                                                {
97                                                        ok=false;       
98                                                }
99                                        }
100                                       
101                                        string msg="";
102                                       
103                                        if(ok)
104                                        {
105                                                msg="<b>" + Mono.Unix.Catalog.GetString("Passwords changed successfuly") + "</b>";
106                                        }
107                                        else
108                                        {
109                                                msg="<span foreground='red'>" + Mono.Unix.Catalog.GetString("There was an error when changing passwords") + ":\n";     
110                                                foreach(string str in ret)
111                                                        msg+=str + "\n";
112                                                msg+="</span>";
113                                        }
114                                       
115                                        msgLabel.Markup=msg;
116                                               
117                                        llum.Core.getCore().progress_window.Hide();
118                                               
119                                        });     
120                                       
121                                                       
122
123                        };
124                       
125                        thread=new System.Threading.Thread(progressTStart);
126                        thread.Start();
127
128               
129                       
130                       
131                       
132                       
133                       
134                       
135
136                       
137                }
138
139                private string generate_password(int size)
140                {
141                    char[] buffer = new char[size];
142                        string chars = "abcdefghijklmnopqrstuvwxyz";
143                        Random rnd=new Random();
144                    for (int i = 0; i < size; i++)
145                    {
146                        buffer[i] = chars[rnd.Next(chars.Length)];
147                    }
148                    return new string(buffer);
149                }
150               
151                public void OnMenuButtonClicked(object sender, System.EventArgs e)
152                {
153                       
154                        llum.Core.getCore().reset_wid=new ResetPasswordsWidget();
155                       
156                        llum.Core.getCore().mw.setCurrentWidget(llum.Core.getCore().reset_wid);
157                }                       
158               
159        }
160}
Note: See TracBrowser for help on using the repository browser.