/// <summary> /// created a new user in compass and assigns the same security as another user with the same title /// </summary> public void CreateCompassSecurity() { IntPtr admin_token = default(IntPtr); WindowsIdentity wid_current = WindowsIdentity.GetCurrent(); WindowsIdentity wid_admin = null; WindowsImpersonationContext wic = null; _StaffID = ""; _Pin = ""; if (LogonUser(Form1._AdminUser, Form1._Domain, Form1._Password, 9, 0, ref admin_token) != 0) { wid_admin = new WindowsIdentity(admin_token); wic = wid_admin.Impersonate(); while (_StaffID == "") { //_NewStaffID = _NewStaffID - 1; //GetRandomNumber(1); MissingNumber(); } GetRandomNumber(2); int cbIndex = Form1.myForm.cbNewJobTitle.SelectedIndex; string userJobTitle = Form1.myForm.cbNewJobTitle.Items[cbIndex].ToString(); _JobTitle = userJobTitle; cbIndex = Form1.myForm.cbNewOfficeLocation.SelectedIndex; string userLocation = Form1.myForm.cbNewOfficeLocation.Items[cbIndex].ToString(); _Location = userLocation; cbIndex = Form1.myForm.cbNewResourceRole.SelectedIndex; string userResourceRole = Form1.myForm.cbNewResourceRole.Items[cbIndex].ToString(); _ReportsToEmail = Form1.myForm.lvReportsTo.SelectedItems[0].SubItems[2].Text; string theSQL = "insert into staff_info(staff_id,first_name,middle_name,last_name,job_code,phone_extension,phone_1,email_address,pin_number,begin_date,full_part_time,mask_from_list,office_location,fax_number,staff_department_id,direct_business_phone,IsActive,ResourceRoll,ActiveDirectoryUsername,ReportsTo)"; theSQL += "values ('" + _StaffID + "',@FirstName,@MiddleName,@LastName,@JobCode,@PhoneExtension,@Phone1,@EmailAddress,'" + _Pin + "','" + Form1.myForm.dpNewStartDate.Value.ToShortDateString() + "',1,0,@Location,@FaxNumber," + GetDepartmentID().ToString() +",@DirectPhone,1,'" + userResourceRole + "','" + Form1.myForm.tbNewADAccountID.Text + "','" + Form1.myForm.lvReportsTo.SelectedItems[0].SubItems[1].Text + "')"; _Con = new SqlConnection(_MasterSqlString.Replace("\\", @"\")); _Con.Open(); string securityToBeAdded = ""; try { using (SqlCommand sqlCom = new SqlCommand(theSQL, _Con)) { sqlCom.Parameters.Add(new SqlParameter("FirstName", Form1.myForm.tbNewFirstName.Text)); sqlCom.Parameters.Add(new SqlParameter("MiddleName", Form1.myForm.tbNewMiddleInit.Text)); sqlCom.Parameters.Add(new SqlParameter("LastName", Form1.myForm.tbNewLastName.Text)); sqlCom.Parameters.Add(new SqlParameter("JobCode", userJobTitle)); sqlCom.Parameters.Add(new SqlParameter("PhoneExtension", Form1.myForm.tbNewPhoneExtension.Text)); sqlCom.Parameters.Add(new SqlParameter("Phone1", Form1.myForm.tbNewPhone.Text)); sqlCom.Parameters.Add(new SqlParameter("EmailAddress", Form1.myForm.tbNewEmail.Text)); sqlCom.Parameters.Add(new SqlParameter("Location", userLocation)); sqlCom.Parameters.Add(new SqlParameter("FaxNumber", Form1.myForm.tbNewFaxNumber.Text)); sqlCom.Parameters.Add(new SqlParameter("DirectPhone", Form1.myForm.tbNewPhone.Text)); Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append("<br><b>Compass User Created:</b><br>"); sqlCom.ExecuteNonQuery(); } foreach (object itemName in GetCompassGroups(userJobTitle)) { securityToBeAdded = itemName.ToString(); _Con = new SqlConnection(_MasterSqlString.Replace("\\", @"\")); _Con.Open(); using (SqlCommand sqlCom2 = new SqlCommand("insert into letmein_user_groups(user_id,letmein_group_id) values ('" + _StaffID + "','" + itemName.ToString() + "')", _Con)) { SqlDataReader reader = sqlCom2.ExecuteReader(); Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append(itemName.ToString() + " group added to Compass Security<br>"); reader.Dispose(); } _Con.Dispose(); } _Con.Dispose(); Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append("<br>Compass Security created.<br>"); Form1.myForm._Notes.Append("StaffID = " + _StaffID + " and PIN = " + _Pin + ". <br>"); Form1.myForm.cbNewCompassCreated.Checked = true; Form1.myForm.lblCompassPin.Text = "Compass Pin: " + _Pin; Form1.myForm.lblStaffId.Text = "StaffID: " + _StaffID; if (userJobTitle.Contains("Academic Advisor") || userJobTitle.Contains("Enrollment Advisor")) { _Con = new SqlConnection(_UATSqlString.Replace("\\", @"\")); _Con.Open(); using (SqlCommand sqlCom = new SqlCommand(theSQL, _Con)) { sqlCom.Parameters.Add(new SqlParameter("FirstName", Form1.myForm.tbNewFirstName.Text)); sqlCom.Parameters.Add(new SqlParameter("MiddleName", Form1.myForm.tbNewMiddleInit.Text)); sqlCom.Parameters.Add(new SqlParameter("LastName", Form1.myForm.tbNewLastName.Text)); sqlCom.Parameters.Add(new SqlParameter("JobCode", userJobTitle)); sqlCom.Parameters.Add(new SqlParameter("PhoneExtension", Form1.myForm.tbNewPhoneExtension.Text)); sqlCom.Parameters.Add(new SqlParameter("Phone1", Form1.myForm.tbNewPhone.Text)); sqlCom.Parameters.Add(new SqlParameter("EmailAddress", Form1.myForm.tbNewEmail.Text)); sqlCom.Parameters.Add(new SqlParameter("Location", userLocation)); sqlCom.Parameters.Add(new SqlParameter("FaxNumber", Form1.myForm.tbNewFaxNumber.Text)); sqlCom.Parameters.Add(new SqlParameter("DirectPhone", Form1.myForm.tbNewPhone.Text)); Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append("<br><b>UAT Compass User Created:</b><br>"); sqlCom.ExecuteNonQuery(); } foreach (object itemName in GetCompassGroups(userJobTitle)) { securityToBeAdded = itemName.ToString(); _Con = new SqlConnection(_UATSqlString.Replace("\\", @"\")); _Con.Open(); using (SqlCommand sqlCom2 = new SqlCommand("insert into letmein_user_groups(user_id,letmein_group_id) values ('" + _StaffID + "','" + itemName.ToString() + "')", _Con)) { SqlDataReader reader = sqlCom2.ExecuteReader(); Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append(itemName.ToString() + " group added to UAT Compass Security<br>"); reader.Dispose(); } _Con.Dispose(); } _Con.Dispose(); Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append("<br>UAT Compass Security created.<br>"); Form1.myForm._Notes.Append("StaffID = " + _StaffID + " and PIN = " + _Pin + ". <br>"); } RR myRR = new RR(); myRR.CreateRRSecurity(_StaffID); Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append("<br><b>Summary</b><br>"); Form1.myForm._Notes.Append("Job Title: " + userJobTitle + "<br>"); Form1.myForm._Notes.Append("Resource Role: " + userResourceRole + "<br>"); cbIndex = Form1.myForm.cbRRSecurityGroup.SelectedIndex; Form1.myForm._Notes.Append("Roadrunner Security Group: " + Form1.myForm.cbRRSecurityGroup.Items[cbIndex].ToString() + "<br>"); Form1.myForm._Notes.Append("Office Location: " + userLocation + "<br>"); Form1.myForm._Notes.Append("Virtual: " + Form1.myForm.cbNewVirtual.Checked.ToString() + "<br>"); Form1.myForm._Notes.Append("Reports To: " + Form1.myForm.lvReportsTo.SelectedItems[0].SubItems[0].Text + "<br>"); } catch (Exception ex) { Form1.myForm.cbNewCompassCreated.Checked = false; Form1.myForm._Notes.AppendLine(); Form1.myForm._Notes.Append("<br><b>Error in Compass/Roadrunner Security creation process.</b><br>" + ex.Message + "<br>" + securityToBeAdded + "<br>"); } finally { _StaffID = ""; } } }