role/securable editor more or less functional
This commit is contained in:
parent
fd0497fee4
commit
7ea16692cc
@ -216,7 +216,7 @@ ENGINE=InnoDB
|
||||
;
|
||||
|
||||
CREATE TABLE `role_securable_map` (
|
||||
`id` INT(10) UNSIGNED NOT NULL,
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`role_id` INT(10) UNSIGNED NOT NULL,
|
||||
`securable_id` INT(10) UNSIGNED NOT NULL,
|
||||
`created` DATETIME NULL DEFAULT current_timestamp(),
|
||||
|
||||
@ -72,7 +72,7 @@ namespace RoleEditor
|
||||
|
||||
#region button callbacks
|
||||
|
||||
private void buttonParticipantSave_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonParticipantSave_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Participant? p = this.listBoxParticipant.SelectedItem as Participant;
|
||||
if (p != null)
|
||||
@ -81,14 +81,14 @@ namespace RoleEditor
|
||||
p.Street = this.textBoxParticipantStreet.Text.Trim();
|
||||
p.PostalCode = this.textBoxParticipantPostalCode.Text.Trim();
|
||||
p.City = this.textBoxParticipantCity.Text.Trim();
|
||||
p.Save(_dbManager);
|
||||
await p.Save(_dbManager);
|
||||
this.listBoxParticipant.ItemsSource = null;
|
||||
this.listBoxParticipant.ItemsSource = _users;
|
||||
this.listBoxParticipant.SelectedItem = p;
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonUserSave_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonUserSave_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
User? u = this.listBoxUser.SelectedItem as User;
|
||||
if(u != null)
|
||||
@ -107,14 +107,14 @@ namespace RoleEditor
|
||||
u.PasswordHash = hashedInputStringBuilder.ToString();
|
||||
}
|
||||
u.APIKey = this.textBoxUserAPIKey.Text.Trim();
|
||||
u.Save(_dbManager);
|
||||
await u.Save(_dbManager);
|
||||
this.listBoxUser.ItemsSource = null;
|
||||
this.listBoxUser.ItemsSource = _users;
|
||||
this.listBoxUser.SelectedItem = u;
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonAddRole_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonAddRole_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Role? r = this.listBoxRoles.SelectedItem as Role;
|
||||
User? u = this.listBoxUser.SelectedItem as User;
|
||||
@ -138,61 +138,84 @@ namespace RoleEditor
|
||||
ra.RoleId = (int) r.Id;
|
||||
ra.AssignedRole = r;
|
||||
ra.AssignedUser = u;
|
||||
ra.Save(_dbManager);
|
||||
await ra.Save(_dbManager);
|
||||
_assignedRoles.Add(ra);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonRemoveRole_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonRemoveRole_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// remove role from user
|
||||
RoleAssignment? ra = this.listBoxUserRoles.SelectedItem as RoleAssignment;
|
||||
if(ra != null)
|
||||
{
|
||||
ra.Delete(_dbManager);
|
||||
await ra.Delete(_dbManager);
|
||||
if(_assignedRoles.Contains(ra))
|
||||
_assignedRoles.Remove(ra);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonAddSecurable_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonAddSecurable_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if ((this.listBoxRoles.SelectedItem is Role r) && (this.listBoxSecurables.SelectedItem is Securable s))
|
||||
{
|
||||
// test if assignment is already present
|
||||
bool foundMatchingAssignment = false;
|
||||
foreach (SecurableAssignment sa in _assignedSecurables)
|
||||
{
|
||||
if ((sa.SecurableId == s.Id) && (sa.RoleId == r.Id))
|
||||
{
|
||||
foundMatchingAssignment = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!foundMatchingAssignment)
|
||||
{
|
||||
SecurableAssignment sa = new SecurableAssignment();
|
||||
sa.SecurableId = (int)s.Id;
|
||||
sa.RoleId = (int)r.Id;
|
||||
sa.AssignedRole = r;
|
||||
sa.AssignedSecurable = s;
|
||||
await sa.Save(_dbManager);
|
||||
_assignedSecurables.Add(sa);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonRemoveSecurable_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonRemoveSecurable_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SecurableAssignment? sa = this.listBoxRoleSecurables.SelectedItem as SecurableAssignment;
|
||||
if(sa != null)
|
||||
{
|
||||
sa.Delete(_dbManager);
|
||||
await sa.Delete(_dbManager);
|
||||
if (_assignedSecurables.Contains(sa))
|
||||
_assignedSecurables.Remove(sa);
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonSaveSecurable_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonSaveSecurable_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Securable? s = this.listBoxSecurables.SelectedItem as Securable;
|
||||
if(s != null)
|
||||
{
|
||||
s.Name = this.textBoxSecurableName.Text.Trim();
|
||||
s.Save(_dbManager);
|
||||
await s.Save(_dbManager);
|
||||
this.listBoxSecurables.ItemsSource = null;
|
||||
this.listBoxSecurables.ItemsSource = _securables;
|
||||
this.listBoxSecurables.SelectedItem = s;
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonSaveRole_Click(object sender, RoutedEventArgs e)
|
||||
private async void buttonSaveRole_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Role? r = this.listBoxRoles.SelectedItem as Role;
|
||||
if(r != null)
|
||||
{
|
||||
r.Name = this.textBoxRoleName.Text.Trim();
|
||||
r.Description = this.textBoxRoleDescription.Text.Trim();
|
||||
r.Save(_dbManager);
|
||||
await r.Save(_dbManager);
|
||||
this.listBoxRoles.ItemsSource = null;
|
||||
this.listBoxRoles.ItemsSource = _roles;
|
||||
this.listBoxRoles.SelectedItem = r;
|
||||
@ -236,9 +259,12 @@ namespace RoleEditor
|
||||
foreach (Securable s in this._securables)
|
||||
{
|
||||
if (sa.SecurableId == s.Id)
|
||||
{
|
||||
sa.AssignedSecurable = s;
|
||||
_assignedSecurables.Add(sa);
|
||||
break;
|
||||
}
|
||||
}
|
||||
_assignedSecurables.Add(sa);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -264,9 +290,12 @@ namespace RoleEditor
|
||||
foreach (Role r in this._roles)
|
||||
{
|
||||
if (ra.RoleId == r.Id)
|
||||
{
|
||||
ra.AssignedRole = r;
|
||||
_assignedRoles.Add(ra);
|
||||
break;
|
||||
}
|
||||
}
|
||||
_assignedRoles.Add(ra);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -281,9 +310,20 @@ namespace RoleEditor
|
||||
|
||||
#region menuitem callbacks
|
||||
|
||||
private void menuItemDeleteParticipant_Click(object sender, RoutedEventArgs e)
|
||||
private async void menuItemDeleteParticipant_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if(this.listBoxParticipant.SelectedItem is Participant p)
|
||||
{
|
||||
await p.Delete(_dbManager);
|
||||
this._participants.Remove(p);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void menuItemNewParticipant_Click(object sender, RoutedEventArgs e)
|
||||
@ -305,9 +345,20 @@ namespace RoleEditor
|
||||
}
|
||||
}
|
||||
|
||||
private void menuItemDeleteUser_Click(object sender, RoutedEventArgs e)
|
||||
private async void menuItemDeleteUser_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if (this.listBoxUser.SelectedItem is User u)
|
||||
{
|
||||
await u.Delete(_dbManager);
|
||||
this._users.Remove(u);
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void menuItemNewRole_Click(object sender, RoutedEventArgs e)
|
||||
@ -317,9 +368,20 @@ namespace RoleEditor
|
||||
this.listBoxRoles.SelectedItem = r;
|
||||
}
|
||||
|
||||
private void menuItemDeleteRole_Click(object sender, RoutedEventArgs e)
|
||||
private async void menuItemDeleteRole_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if (this.listBoxRoles.SelectedItem is Role r)
|
||||
{
|
||||
await r.Delete(_dbManager);
|
||||
this._roles.Remove(r);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void menuItemNewSecurable_Click(object sender, RoutedEventArgs e)
|
||||
@ -329,9 +391,20 @@ namespace RoleEditor
|
||||
this.listBoxSecurables.SelectedItem = s;
|
||||
}
|
||||
|
||||
private void menuItemDeleteSecurable_Click(object sender, RoutedEventArgs e)
|
||||
private async void menuItemDeleteSecurable_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if (this.listBoxSecurables.SelectedItem is Securable s)
|
||||
{
|
||||
await s.Delete(_dbManager);
|
||||
this._securables.Remove(s);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@ -45,7 +45,7 @@ namespace brecal.model
|
||||
/// <summary>
|
||||
/// Each database entity must be able to save itself to the database
|
||||
/// </summary>
|
||||
public async void Save(IDBManager manager)
|
||||
public async Task Save(IDBManager manager)
|
||||
{
|
||||
if (this.Created.HasValue)
|
||||
{
|
||||
@ -60,7 +60,7 @@ namespace brecal.model
|
||||
/// <summary>
|
||||
/// Each entity must be able to delete itself
|
||||
/// </summary>
|
||||
public async void Delete(IDBManager manager)
|
||||
public async Task Delete(IDBManager manager)
|
||||
{
|
||||
await manager.ExecuteNonQuery(this.SetDelete);
|
||||
}
|
||||
|
||||
@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
|
||||
namespace brecal.model
|
||||
{
|
||||
@ -105,7 +100,7 @@ namespace brecal.model
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"{AssignedRole.Name}:{Id}";
|
||||
return AssignedRole.Name ?? AssignedRole.Id.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Data;
|
||||
|
||||
namespace brecal.model
|
||||
{
|
||||
@ -73,7 +68,17 @@ namespace brecal.model
|
||||
|
||||
public override void SetCreate(IDbCommand cmd)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
cmd.CommandText = "INSERT INTO role_securable_map (securable_id, role_id) VALUES (@SECURABLEID, @ROLEID)";
|
||||
|
||||
IDbDataParameter userid = cmd.CreateParameter();
|
||||
userid.ParameterName = "SECURABLEID";
|
||||
userid.Value = this.SecurableId;
|
||||
cmd.Parameters.Add(userid);
|
||||
|
||||
IDbDataParameter roleid = cmd.CreateParameter();
|
||||
roleid.ParameterName = "ROLEID";
|
||||
roleid.Value = this.RoleId;
|
||||
cmd.Parameters.Add(roleid);
|
||||
}
|
||||
|
||||
public override void SetDelete(IDbCommand cmd)
|
||||
@ -94,7 +99,7 @@ namespace brecal.model
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"{AssignedSecurable.Name}:{Id}";
|
||||
return AssignedSecurable.Name ?? AssignedSecurable.Id.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user