Zooflow: First version of user group relations

This commit is contained in:
Jonathan Jenne
2022-03-09 15:36:14 +01:00
parent f48912b996
commit 8ace2fe11f
10 changed files with 214 additions and 70 deletions

View File

@@ -12,6 +12,8 @@ Public Class frmAdmin_UserGroupRelations
Public Property IsInsert As Boolean Implements IAdminForm.IsInsert
Private Property SelectedGroupId As Integer = Nothing
Private Property SelectedAvailableUser As Integer = Nothing
Private Property SelectedRelatedUser As Integer = Nothing
Public Sub New(pPrimaryKey As Integer)
' Dieser Aufruf ist für den Designer erforderlich.
@@ -43,11 +45,13 @@ Public Class frmAdmin_UserGroupRelations
Private Async Function GetAvailableUsersByGroupId(pGroupId As Integer) As Threading.Tasks.Task(Of DataTable)
Try
Dim oSql As String = $"
SELECT T1.GUID, T1.PRENAME, T1.NAME, T1.USERNAME, T1.SHORTNAME, T1.EMAIL, T1.LANGUAGE, T1.COMMENT, T1.DATE_FORMAT, T1.ADDED_WHO, T1.ADDED_WHEN, T1.CHANGED_WHO, T1.CHANGED_WHEN
FROM TBDD_USER AS T1 INNER JOIN
TBDD_GROUPS_USER AS T2 ON T1.GUID = T2.USER_ID
WHERE (T2.GROUP_ID = {pGroupId})
Dim oSql As String = $"
SELECT GUID, PRENAME, NAME, USERNAME, SHORTNAME, EMAIL, LANGUAGE, COMMENT, DATE_FORMAT, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN
FROM TBDD_USER
WHERE (GUID NOT IN
(SELECT DISTINCT T.GUID
FROM TBDD_USER AS T INNER JOIN TBDD_GROUPS_USER AS T1 ON T.GUID = T1.USER_ID
WHERE (T1.GROUP_ID = {pGroupId})))
"
Dim oTable = Await My.DatabaseECM.GetDatatableAsync(oSql)
Return oTable
@@ -59,13 +63,11 @@ Public Class frmAdmin_UserGroupRelations
Private Async Function GetRelatedUsersByGroupId(pGroupId As Integer) As Threading.Tasks.Task(Of DataTable)
Try
Dim oSql As String = $"
SELECT GUID, PRENAME, NAME, USERNAME, SHORTNAME, EMAIL, LANGUAGE, COMMENT, DATE_FORMAT, ADDED_WHO, ADDED_WHEN, CHANGED_WHO, CHANGED_WHEN
FROM TBDD_USER
WHERE (GUID NOT IN
(SELECT DISTINCT T.GUID
FROM TBDD_USER AS T INNER JOIN TBDD_GROUPS_USER AS T1 ON T.GUID = T1.USER_ID
WHERE (T1.GROUP_ID = {pGroupId})))
Dim oSql As String = $"
SELECT T1.GUID, T1.PRENAME, T1.NAME, T1.USERNAME, T1.SHORTNAME, T1.EMAIL, T1.LANGUAGE, T1.COMMENT, T1.DATE_FORMAT, T1.ADDED_WHO, T1.ADDED_WHEN, T1.CHANGED_WHO, T1.CHANGED_WHEN
FROM TBDD_USER AS T1 INNER JOIN
TBDD_GROUPS_USER AS T2 ON T1.GUID = T2.USER_ID
WHERE (T2.GROUP_ID = {pGroupId})
"
Dim oTable = Await My.DatabaseECM.GetDatatableAsync(oSql)
Return oTable
@@ -90,6 +92,22 @@ Public Class frmAdmin_UserGroupRelations
End If
End Sub
Private Sub GridView1_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles GridView1.FocusedRowChanged
Try
SelectedAvailableUser = GridView1.GetFocusedRowCellValue("GUID")
Catch ex As Exception
SelectedAvailableUser = 0
End Try
End Sub
Private Sub GridView3_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles GridView3.FocusedRowChanged
Try
SelectedRelatedUser = GridView3.GetFocusedRowCellValue("GUID")
Catch ex As Exception
SelectedRelatedUser = 0
End Try
End Sub
Private Async Function UpdateUsers(pGroupId As Integer) As Threading.Tasks.Task
Dim oAvailableTable = Await GetAvailableUsersByGroupId(SelectedGroupId)
GridControl1.DataSource = oAvailableTable
@@ -102,7 +120,7 @@ Public Class frmAdmin_UserGroupRelations
Dim oData As String = e.Data.GetData(DataFormats.Text)
Dim oGuid As Integer = oData.Split("|").ToList.First()
If Await AddUserToGroup(oGuid, SelectedGroupId) Then
If Await RemoveUserFromGroup(oGuid, SelectedGroupId) Then
Await UpdateUsers(SelectedGroupId)
End If
End Sub
@@ -111,7 +129,7 @@ Public Class frmAdmin_UserGroupRelations
Dim oData As String = e.Data.GetData(DataFormats.Text)
Dim oGuid As Integer = oData.Split("|").ToList.First()
If Await RemoveUserFromGroup(oGuid, SelectedGroupId) Then
If Await AddUserToGroup(oGuid, SelectedGroupId) Then
Await UpdateUsers(SelectedGroupId)
End If
End Sub
@@ -152,4 +170,18 @@ Public Class frmAdmin_UserGroupRelations
End Try
End Function
Private Async Sub SimpleButton2_Click(sender As Object, e As EventArgs) Handles SimpleButton2.Click
If SelectedAvailableUser > 0 Then
Await AddUserToGroup(SelectedAvailableUser, SelectedGroupId)
Await UpdateUsers(SelectedGroupId)
End If
End Sub
Private Async Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
If SelectedRelatedUser > 0 Then
Await RemoveUserFromGroup(SelectedRelatedUser, SelectedGroupId)
Await UpdateUsers(SelectedGroupId)
End If
End Sub
End Class