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();
33
            Column_4.Text = "Date Created";
34
            Column_4.Width = 80;
35
            Column_4.TextAlign = HorizontalAlignment.Center;
36
            this.lst_UserAccounts.Columns.Add(Column_4);
37
 
38
            PaintUserListbox();
39
            this.btn_Delete.Enabled = false;
40
            this.btn_Pass.Enabled = false;
41
            this.btn_Share.Enabled = false;
42
            this.btn_OpenShare.Enabled = false;
43
 
44
            this.lst_UserAccounts.ItemSelectionChanged += new ListViewItemSelectionChangedEventHandler(this.lst_ItemSelectionChanged);
45
            this.Activated += new EventHandler(this.form_Activated);
46
        }
47
        private void PaintUserListbox()
48
        {
49
            // Function for refreshing/painting the listbox
50
            this.lst_UserAccounts.BeginUpdate();
51
            ManageUserAccounts.QueryUserAccounts();
52
 
53
            // Temporary entries in listview
54
            //ListViewItem entry;
55
            //ListViewItem.ListViewSubItem s_entry;
56
            //entry = new ListViewItem();
57
            //entry.Text = "TestUser";
58
            //s_entry = new ListViewItem.ListViewSubItem();
59
            //s_entry.Text = "Yes";
60
            //entry.SubItems.Add(s_entry);
61
            //s_entry = new ListViewItem.ListViewSubItem();
62
            //s_entry.Text = "Yes";
63
            //entry.SubItems.Add(s_entry);
64
            //s_entry = new ListViewItem.ListViewSubItem();
65
            //s_entry.Text = "01/05/2010";
66
            //entry.SubItems.Add(s_entry);
67
            //this.lst_User_Accounts.Items.Add(entry);
68
 
69
            this.lst_UserAccounts.Items.Clear();
70
            // Prevents system accounts from showing, depending on settings
71
            foreach (string user in ManageUserAccounts.UserAccountsList)
72
            {
73
                ListViewItem entry = new ListViewItem();
74
                bool remove = false;
75
                foreach (string hiddenUser in Settings_Form.hiddenAccounts)
76
                {
77
                    if (user.ToLower() == hiddenUser.ToLower())
78
                    {
79
                        remove = true;
80
                        break;
81
                    }
82
                }
83
                // Adds the subitem columns for each entry
84
                if (remove == false)
85
                {
86
                    ListViewItem.ListViewSubItem s_password = new ListViewItem.ListViewSubItem();
87
                    string[] extraUserInformation = ManageUserAccounts.QueryUserAccountExtraInformation(user);
88
                    s_password.Text = extraUserInformation[0];
89
                    entry.SubItems.Add(s_password);
90
                    ListViewItem.ListViewSubItem s_share = new ListViewItem.ListViewSubItem();
91
                    if (ManageUserAccounts.QueryUserSharedFolderExist(user))
92
                        s_share.Text = "Yes";
93
                    else
94
                        s_share.Text = "No";
95
                    entry.SubItems.Add(s_share);
96
                    ListViewItem.ListViewSubItem s_datecreated = new ListViewItem.ListViewSubItem();
97
                    s_datecreated.Text = extraUserInformation[1];
98
                    entry.SubItems.Add(s_datecreated);
99
                }
100
                if (remove == false)
101
                {
102
                    entry.Text = user;
103
                    this.lst_UserAccounts.Items.Add(entry);
104
                }
105
            }
106
            this.lst_UserAccounts.EndUpdate();
107
        }
108
        private void lst_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
109
        {
110
            lst_ValidateAll();
111
        }
112
        private void lst_ValidateAll()
113
        {
114
            // Disables certain buttons depending on number of items selected
115
            ListView.SelectedListViewItemCollection collection = this.lst_UserAccounts.SelectedItems;
116
 
117
            if (collection.Count == 0)
118
            {
119
                this.btn_Delete.Enabled = false;
120
                this.btn_Pass.Enabled = false;
121
                this.btn_Share.Enabled = false;
122
                this.btn_OpenShare.Enabled = false;
123
            }
124
            else if (collection.Count == 1)
125
            {
126
                // Checks if any of the selected items are system accounts
127
                bool check = false;
128
                foreach (string systemUser in Settings_Form.systemAccounts)
129
                {
130
                    if (collection[0].Text.ToLower() == systemUser.ToLower())
131
                        check = true;
132
                }
133
                if (check == false)
134
                {
135
                    this.btn_Delete.Enabled = true;
136
                    this.btn_Pass.Enabled = true;
137
                    this.btn_Share.Enabled = true;
138
                    ListViewItem.ListViewSubItem subItem = collection[0].SubItems[2];
139
                    if (subItem.Text == "Yes")
140
                        this.btn_OpenShare.Enabled = true;
141
                    else
142
                        this.btn_OpenShare.Enabled = false;
143
                }
144
                else
145
                {
146
                    this.btn_Delete.Enabled = false;
147
                    this.btn_Pass.Enabled = false;
148
                    this.btn_Share.Enabled = false;
149
                    this.btn_OpenShare.Enabled = false;
150
                }
151
            }
152
            else
153
            {
154
                this.btn_Delete.Enabled = true;
155
                this.btn_Pass.Enabled = false;
156
                this.btn_Share.Enabled = false;
157
                this.btn_OpenShare.Enabled = false;
158
            }
159
        }
160
        private void form_Activated(object sender, EventArgs e)
161
        {
162
            // Refreshes form on form activation
163
            ManageUserAccounts.QueryUserAccounts();
164
            PaintUserListbox();
165
        }
166
        private void btn_Exit_Click(object sender, EventArgs e)
167
        {
168
            this.Close();
169
        }
170
        private void btn_Refresh_Click(object sender, EventArgs e)
171
        {
172
            PaintUserListbox();
173
        }
174
        private void btn_Add_Click(object sender, EventArgs e)
175
        {
176
            AddUserAccount_Form.Add_User_Account_Instance.ShowDialog();
177
            lst_ValidateAll();
178
        }
179
        private void btn_Delete_Click(object sender, EventArgs e)
180
        {
181
            if (ManageUserAccounts.SessionsOpen() == false)
182
            {
183
                ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
184
                List<string> userList = new List<string>();
185
                foreach (ListViewItem user in selectedItems)
186
                    userList.Add(user.Text);
187
                DeleteUserVerify_Form newForm = new DeleteUserVerify_Form(userList);
188
                newForm.ShowDialog();
189
            }
190
            else
191
                MessageBox.Show("Sessions are still open. Please close them before deleting accounts", "Error");
192
            PaintUserListbox();
193
            lst_ValidateAll();
194
        }
195
        private void btn_Pass_Click(object sender, EventArgs e)
196
        {
197
            ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
198
            ResetUserPassword_Form newForm = new ResetUserPassword_Form(selectedItems[0].Text);
199
            newForm.ShowDialog();
200
 
201
            PaintUserListbox();
202
            lst_ValidateAll();
203
        }
204
        private void btn_Share_Click(object sender, EventArgs e)
205
        {
206
            ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
207
            ToggleUserVerify_Form newForm = new ToggleUserVerify_Form(selectedItems[0].Text);
208
            newForm.ShowDialog();
209
 
210
            PaintUserListbox();
211
            lst_ValidateAll();
212
        }
213
        private void btn_OpenShare_Click(object sender, EventArgs e)
214
        {
215
            ListView.SelectedListViewItemCollection selectedItems = this.lst_UserAccounts.SelectedItems;
216
            string openFolderString = Settings_Form.sharedFolderLocation + "\\" + selectedItems[0].Text;
217
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
218
            proc.StartInfo.FileName = openFolderString;
219
            proc.Start();
220
        }
221
    }
222
}