コード例 #1
0
        private void LoadRoleAcls(Role role)
        {
            if (role == null)
            {
                return;
            }

            RoleACLs.Clear();
            foreach (var acl in role.ACLs)
            {
                RoleACLs.Add(new AclWrapper(acl));
            }
        }
コード例 #2
0
        private async void OnRemoveRoleExecute()
        {
            if (!_rbacManager.LoggedUser.IsAdmin && !_rbacManager.LoggedUserHasPermission(AclVerbNames.UserConfiguration))
            {
                await _messageDialogService.ShowAccessDeniedMessageAsync(this);

                return;
            }

            if (SelectedRole.IsSystem)
            {
                await _messageDialogService
                .ShowInformationMessageAsync(this, "Nie można usunąć roli...", "Nie można usunąć roli systemowej.");

                return;
            }

            if (SelectedRole.Id == _rbacManager.LoggedUser.RoleId)
            {
                await _messageDialogService
                .ShowInformationMessageAsync(this, "Nie można usunąć roli...", "Nie można usunąć obecnie używanej roli.");
            }

            if (SelectedRole.Users.Any())
            {
                await _messageDialogService.ShowInformationMessageAsync(this, "Rola w użyciu...", "Wybrana rola jest w użyciu, nie można jej usunąć.");

                return;
            }

            var confirmDialogResult = await _messageDialogService
                                      .ShowConfirmationMessageAsync(this, "Czy usunąć rolę?", $"Czy usunąć rolę {SelectedRole.Name}?");

            if (confirmDialogResult == DialogResult.Cancel)
            {
                return;
            }

            _rbacManager.RemoveRole(SelectedRole);
            Roles.Remove(SelectedRole);
            RoleACLs.Clear();
        }