Zooflow: First version of user group relations
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user