using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespace GeoTema { public partial class AddUser : Form { public AddUser() { InitializeComponent(); } private void btnAdd_Click(object sender, EventArgs e) { string NewUser = txtUserName.Text; string NewPass = txtPassword.Text; string UserType = ""; string statement1 = ""; foreach (Control control in gboxUserType.Controls) { if (control is RadioButton) { RadioButton radio = control as RadioButton; if (radio.Checked) UserType = radio.Text; } } if (NewUser == "" || NewPass == "" || UserType == "") MessageBox.Show("Fields can't be empty!"); else { string statement = "use GeoTema_Users select Username from Users where Username = @Exist"; if (Sql.ExistCheck(statement, NewUser)) MessageBox.Show("Username already exists!"); else { List param = new List { NewUser, NewPass }; MainMenu main1 = new MainMenu(); if (main1.PasswordCheck(NewPass)) { switch (UserType) { case "administrator": { statement1 = "use master declare @sql nvarchar(max) set @sql = 'create login ' + @User + ' with password = ' + quotename(@Pass, '''') + ' alter server role ServerAdminRole add member ' + @User + ' use fødselsrate_2017 create user ' + @User + ' from login ' + @User + ' alter role AdminRole add member ' + @User + ' use GeoTema_Users create user ' + @User + ' from login ' + @User + ' alter role AdminRole add member ' + @User exec(@sql)"; break; } case "super user": { statement1 = "use master declare @sql nvarchar(max) set @sql = 'create login ' + @User + ' with password = ' + quotename(@Pass, '''') + ' grant alter on login::' + @User + ' to ' + @User + ' use fødselsrate_2017 create user ' + @User + ' from login ' + @User + ' alter role SuperRole add member ' + @User + ' use GeoTema_Users create user ' + @User + ' from login ' + @User + ' alter role UserRole add member ' + @User exec(@sql)"; break; } case "user": { statement1 = "use master declare @sql nvarchar(max) set @sql = 'create login ' + @User + ' with password = ' + quotename(@Pass, '''') + ' grant alter on login::' + @User + ' to ' + @User + ' use fødselsrate_2017 create user ' + @User + ' from login ' + @User + ' alter role UserRole add member ' + @User + ' use GeoTema_Users create user ' + @User + ' from login ' + @User + ' alter role UserRole add member ' + @User exec(@sql)"; break; } } try { Sql.SQLConnect(statement1, param); string statement2 = "use GeoTema_Users insert into Users values(@User, @Pass,'" + UserType + "')"; Sql.SQLConnect(statement2, param); MessageBox.Show("User added!"); } catch (Exception n) { MessageBox.Show(n.Message); } } else MessageBox.Show("Passwords must be a minimum of 8 characters long and contain at least one of each: small letter, big letter and number."); } } } private void btnBack_Click(object sender, EventArgs e) { this.Hide(); AdminMenu Admin1 = new AdminMenu(); Admin1.ShowDialog(); this.Close(); } } }