diff --git a/client/Ntreev.Crema.Client.Users/MenuItems/KickMenuItem.cs b/client/Ntreev.Crema.Client.Users/MenuItems/KickMenuItem.cs new file mode 100644 index 000000000..6aaf9e2d8 --- /dev/null +++ b/client/Ntreev.Crema.Client.Users/MenuItems/KickMenuItem.cs @@ -0,0 +1,61 @@ +//Released under the MIT License. +// +//Copyright (c) 2018 Ntreev Soft co., Ltd. +// +//Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +//documentation files (the "Software"), to deal in the Software without restriction, including without limitation the +//rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit +//persons to whom the Software is furnished to do so, subject to the following conditions: +// +//The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +//Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +//WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +//COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.ComponentModel.Composition.Primitives; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Ntreev.Crema.Client.Framework; +using Ntreev.Crema.Client.Users.Properties; +using Ntreev.ModernUI.Framework; + +namespace Ntreev.Crema.Client.Users.MenuItems +{ + [Export(typeof(IMenuItem))] + [ParentType(typeof(DomainUserTreeItemBase))] + class KickMenuItem : MenuItemBase + { + [Import] + private Authenticator authenticator = null; + + public KickMenuItem() + { + this.DisplayName = Resources.MenuItem_Kick; + } + + protected override bool OnCanExecute(object parameter) + { + if (parameter is IDomainUserDescriptor domainUserDescriptor) + { + return DomainUserUtility.CanKick(this.authenticator, domainUserDescriptor); + } + + return false; + } + + protected override async void OnExecute(object parameter) + { + if (parameter is IDomainUserDescriptor domainUserDescriptor) + { + await DomainUserUtility.KickAsync(this.authenticator, domainUserDescriptor); + } + } + } +} diff --git a/client/Ntreev.Crema.Client.Users/MenuItems/SetOwnerMenuItem.cs b/client/Ntreev.Crema.Client.Users/MenuItems/SetOwnerMenuItem.cs new file mode 100644 index 000000000..5198cd57e --- /dev/null +++ b/client/Ntreev.Crema.Client.Users/MenuItems/SetOwnerMenuItem.cs @@ -0,0 +1,61 @@ +//Released under the MIT License. +// +//Copyright (c) 2018 Ntreev Soft co., Ltd. +// +//Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +//documentation files (the "Software"), to deal in the Software without restriction, including without limitation the +//rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit +//persons to whom the Software is furnished to do so, subject to the following conditions: +// +//The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +//Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +//WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +//COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +//OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.ComponentModel.Composition.Primitives; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Ntreev.Crema.Client.Framework; +using Ntreev.Crema.Client.Users.Properties; +using Ntreev.ModernUI.Framework; + +namespace Ntreev.Crema.Client.Users.MenuItems +{ + [Export(typeof(IMenuItem))] + [ParentType(typeof(DomainUserTreeItemBase))] + class SetOwnerMenuItem : MenuItemBase + { + [Import] + private Authenticator authenticator = null; + + public SetOwnerMenuItem() + { + this.DisplayName = Resources.MenuItem_SetOwner; + } + + protected override bool OnCanExecute(object parameter) + { + if (parameter is IDomainUserDescriptor domainUserDescriptor) + { + return DomainUserUtility.CanSetOwner(this.authenticator, domainUserDescriptor); + } + + return false; + } + + protected override async void OnExecute(object parameter) + { + if (parameter is IDomainUserDescriptor domainUserDescriptor) + { + await DomainUserUtility.SetOwnerAsync(this.authenticator, domainUserDescriptor); + } + } + } +} diff --git a/client/Ntreev.Crema.Client.Users/Ntreev.Crema.Client.Users.csproj b/client/Ntreev.Crema.Client.Users/Ntreev.Crema.Client.Users.csproj index 56a66ec2e..23cbf3bd9 100644 --- a/client/Ntreev.Crema.Client.Users/Ntreev.Crema.Client.Users.csproj +++ b/client/Ntreev.Crema.Client.Users/Ntreev.Crema.Client.Users.csproj @@ -114,10 +114,12 @@ ViewMessageView.xaml + + Code diff --git a/client/Ntreev.Crema.Client.Users/PropertyItems/Views/EditorsView.xaml b/client/Ntreev.Crema.Client.Users/PropertyItems/Views/EditorsView.xaml index 0caa3d5e8..19a4bebca 100644 --- a/client/Ntreev.Crema.Client.Users/PropertyItems/Views/EditorsView.xaml +++ b/client/Ntreev.Crema.Client.Users/PropertyItems/Views/EditorsView.xaml @@ -32,9 +32,6 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - - -