Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
9 Kevin 1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
 
10
namespace SWAT_Office_App
11
{
12
    public partial class ManageUserAccounts_Form : Form
13
    {
14
        public ManageUserAccounts_Form()
15
        {
16
            InitializeComponent();
17
            // Designate columns to include in listview for the Manage User Accounts Form
18
            ColumnHeader Column_1 = new ColumnHeader();
19
            Column_1.Text = "Username";
20
            Column_1.Width = 101;
21
            this.lst_UserAccounts.Columns.Add(Column_1);
22
            ColumnHeader Column_2 = new ColumnHeader();
23
            Column_2.Text = "Pass?";
24
            Column_2.Width = 46;
25
            Column_2.TextAlign = HorizontalAlignment.Center;
26
            this.lst_UserAccounts.Columns.Add(Column_2);
27
            ColumnHeader Column_3 = new ColumnHeader();
28
            Column_3.Text = "Share?";
29
            Column_3.Width = 46;
30
            Column_3.TextAlign = HorizontalAlignment.Center;
31
            this.lst_UserAccounts.Columns.Add(Column_3);
32
            ColumnHeader Column_4 = new ColumnHeader();
48 Kevin 33
            Column_4.Text = "Size";
34
            Column_4.Width = 50;
9 Kevin 35
            Column_4.TextAlign = HorizontalAlignment.Center;
36
            this.lst_UserAccounts.Columns.Add(Column_4);
48 Kevin 37
            ColumnHeader Column_5 = new ColumnHeader();
38
            Column_5.Text = "Date Created";
39
            Column_5.Width = 80;
40
            Column_5.TextAlign = HorizontalAlignment.Center;
41
            this.lst_UserAccounts.Columns.Add(Column_5);
9 Kevin 42
 
43
            PaintUserListbox();
44
            this.btn_Delete.Enabled = false;
45
            this.btn_Pass.Enabled = false;
46
            this.btn_Share.Enabled = false;
47
            this.btn_OpenShare.Enabled = false;
48
 
49
            this.lst_UserAccounts.ItemSelectionChanged += new ListViewItemSelectionChangedEventHandler(this.lst_ItemSelectionChanged);
50
            this.Activated += new EventHandler(this.form_Activated);
51
        }
52
        private void PaintUserListbox()
53
        {
54
            // Function for refreshing/painting the listbox
55
            this.lst_UserAccounts.BeginUpdate();
56
            ManageUserAccounts.QueryUserAccounts();
57
 
58
            // Temporary entries in listview
59
            //ListViewItem entry;
60
            //ListViewItem.ListViewSubItem s_entry;
61
            //entry = new ListViewItem();
62
            //entry.Text = "TestUser";
63
            //s_entry = new ListViewItem.ListViewSubItem();
64
            //s_entry.Text = "Yes";
65
            //entry.SubItems.Add(s_entry);
66
            //s_entry = new ListViewItem.ListViewSubItem();
67
            //s_entry.Text = "Yes";
68
            //entry.SubItems.Add(s_entry);
69
            //s_entry = new ListViewItem.ListViewSubItem();
70
            //s_entry.Text = "01/05/2010";
71
            //entry.SubItems.Add(s_entry);
72
            //this.lst_User_Accounts.Items.Add(entry);
73
 
74
            this.lst_UserAccounts.Items.Clear();
75
            // Prevents system accounts from showing, depending on settings
76
            foreach (string user in ManageUserAccounts.UserAccountsList)
77
            {
78
                ListViewItem entry = new ListViewItem();
79
                bool remove = false;
80
                foreach (string hiddenUser in Settings_Form.hiddenAccounts)
81
                {
82
                    if (user.ToLower() == hiddenUser.ToLower())
83
                    {
84
                        remove = true;
85
                        break;
86
                    }
87
                }
88
                // Adds the subitem columns for each entry
89
                if (remove == false)
90
                {
91
                    ListViewItem.ListViewSubItem s_password = new ListViewItem.ListViewSubItem();
92
                    string[] extraUserInformation = ManageUserAccounts.QueryUserAccountExtraInformation(user);
93
                    s_password.Text = extraUserInformation[0];
94
                    entry.SubItems.Add(s_password);
95
                    ListViewItem.ListViewSubItem s_share = new ListViewItem.ListViewSubItem();
96
                    if (ManageUserAccounts.QueryUserSharedFolderExist(user))
97
                        s_share.Text = "Yes";
98
                    else
99
                        s_share.Text = "No";
100
                    entry.SubItems.Add(s_share);
48 Kevin 101
                    ListViewItem.ListViewSubItem s_size = new ListViewItem.ListViewSubItem();
50 Kevin 102
                    if (Settings_Form.showFileSizes)
103
                    {
104
                        long size = ManageUserAccounts.GetShareSize(user);
105
                        if ((size / 1073741824) > 0)
106
                            s_size.Text = (size / 1073741824).ToString() + " GB";
107
                        else
108
                            s_size.Text = (size / 1048576).ToString() + " MB";
109
                    }
48 Kevin 110
                    else
50 Kevin 111
                    {
112
                        s_size.Text = "NA";
113
                    }
48 Kevin 114
                    entry.SubItems.Add(s_size);
9 Kevin 115
                    ListViewItem.ListViewSubItem s_datecreated = new ListViewItem.ListViewSubItem();
116
                    s_datecreated.Text = extraUserInformation[1];
117
                    entry.SubItems.Add(s_datecreated);
118
                }
119
                if (remove == false)
120
                {
121
                    entry.Text = user;
122
                    this.lst_UserAccounts.Items.Add(entry);
123
                }
124
            }
125
            this.lst_UserAccounts.EndUpdate();
126
        }
127
        private void lst_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
128
        {
129
            lst_ValidateAll();
130
        }
131
        private void lst_ValidateAll()
132
        {
133
            // Disables certain buttons depending on number of items selected
134
            ListView.SelectedListViewItemCollection collection = this.lst_UserAccounts.SelectedItems;
135
 
136
            if (collection.Count == 0)
137
            {
138
                this.btn_Delete.Enabled = false;
139
                this.btn_Pass.Enabled = false;
140
                this.btn_Share.Enabled = false;
141
                this.btn_OpenShare.Enabled = false;
142
            }
143
            else if (collection.Count == 1)
144
            {
145
                // Checks if any of the selected items are system accounts
146
                bool check = false;
147
                foreach (string systemUser in Settings_Form.systemAccounts)
148
                {
149
                    if (collection[0].Text.ToLower() == systemUser.ToLower())
150
                        check = true;
151
                }
152
                if (check == false)
153
                {
154
                    this.btn_Delete.Enabled = true;
155
                    this.btn_Pass.Enabled = true;
156
                    this.btn_Share.Enabled = true;
157
                    ListViewItem.ListViewSubItem subItem = collection[0].SubItems[2];
158
                    if (subItem.Text == "Yes")
159
                        this.btn_OpenShare.Enabled = true;
160
                    else
161
                        this.btn_OpenShare.Enabled = false;
162
                }
163
                else
164
                {
165
                    this.btn_Delete.Enabled = false;
166
                    this.btn_Pass.Enabled = false;
167
                    this.btn_Share.Enabled = false;
168
                    this.btn_OpenShare.Enabled = false;
169
                }
170
            }
171
            else
172
            {
173
                this.btn_Delete.Enabled = true;
174
                this.btn_Pass.Enabled = false;
175
                this.btn_Share.Enabled = false;
176
                this.btn_OpenShare.Enabled = false;
177
            }
178
        }
179
        private void form_Activated(object sender, EventArgs e)
180
        {
181
            // Refreshes form on form activation
182
            ManageUserAccounts.QueryUserAccounts();
183
            PaintUserListbox();
184
        }
185
        private void btn_Exit_Click(object sender, EventArgs e)
186
        {
187
            this.Close();
188
        }
189
        private void btn_Refresh_Click(object sender, EventArgs e)
190
        {
191
            PaintUserListbox();
192
        }
193
        private void btn_Add_Click(object sender, EventArgs e)
194
        {
195
            AddUserAccount_Form.Add_User_Account_Instance.ShowDialog();
196
            lst_ValidateAll();
197
        }
198
        private void btn_Delete_Click(object sender, EventArgs e)
199
        {
200
            if (ManageUserAccounts.SessionsOpen() == false)
201
            {
202
                ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
203
                List<string> userList = new List<string>();
204
                foreach (ListViewItem user in selectedItems)
205
                    userList.Add(user.Text);
206
                DeleteUserVerify_Form newForm = new DeleteUserVerify_Form(userList);
207
                newForm.ShowDialog();
208
            }
209
            else
210
                MessageBox.Show("Sessions are still open. Please close them before deleting accounts", "Error");
211
            PaintUserListbox();
212
            lst_ValidateAll();
213
        }
214
        private void btn_Pass_Click(object sender, EventArgs e)
215
        {
216
            ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
217
            ResetUserPassword_Form newForm = new ResetUserPassword_Form(selectedItems[0].Text);
218
            newForm.ShowDialog();
219
 
220
            PaintUserListbox();
221
            lst_ValidateAll();
222
        }
223
        private void btn_Share_Click(object sender, EventArgs e)
224
        {
225
            ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
226
            ToggleUserVerify_Form newForm = new ToggleUserVerify_Form(selectedItems[0].Text);
227
            newForm.ShowDialog();
228
 
229
            PaintUserListbox();
230
            lst_ValidateAll();
231
        }
232
        private void btn_OpenShare_Click(object sender, EventArgs e)
233
        {
234
            ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
235
            string openFolderString = Settings_Form.sharedFolderLocation + "\\" + selectedItems[0].Text;
236
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
237
            proc.StartInfo.FileName = openFolderString;
238
            proc.Start();
239
        }
240
    }
241
}