Skip to content

Commit

Permalink
[client] 도메인 사용자 소유자 및 추방 기능 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
powerumc committed Jul 29, 2019
1 parent 758730d commit 952647f
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 3 deletions.
61 changes: 61 additions & 0 deletions client/Ntreev.Crema.Client.Users/MenuItems/KickMenuItem.cs
Original file line number Diff line number Diff line change
@@ -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);
}
}
}
}
61 changes: 61 additions & 0 deletions client/Ntreev.Crema.Client.Users/MenuItems/SetOwnerMenuItem.cs
Original file line number Diff line number Diff line change
@@ -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);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,12 @@
<Compile Include="Dialogs\Views\ViewMessageView.xaml.cs">
<DependentUpon>ViewMessageView.xaml</DependentUpon>
</Compile>
<Compile Include="MenuItems\KickMenuItem.cs" />
<Compile Include="MenuItems\SendMessageMenuItem.cs" />
<Compile Include="MenuItems\FileMenus\ChangePasswordMenuItem.cs" />
<Compile Include="Dialogs\ViewModels\SendMessageViewModel.cs" />
<Compile Include="Dialogs\ViewModels\ViewMessageViewModel.cs" />
<Compile Include="MenuItems\SetOwnerMenuItem.cs" />
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
<DataTemplate x:Key="ListBox_ItemTemplate">
<DataTemplate.Resources>
<nmfc:ExpandableContextMenu x:Key="ListBoxItem_ContextMenu" ItemsSource="{Binding ContextMenus}">
<MenuItem x:Name="SendMessage" Header="{x:Static p:Resources.MenuItem_SendMessage}" />
<MenuItem x:Name="SetOwner" Header="{x:Static p:Resources.MenuItem_SetOwner}" />
<MenuItem x:Name="Kick" Header="{x:Static p:Resources.MenuItem_Kick}" />
</nmfc:ExpandableContextMenu>
</DataTemplate.Resources>
<DockPanel Background="Transparent" Margin="2" ContextMenu="{StaticResource ListBoxItem_ContextMenu}">
Expand Down

0 comments on commit 952647f

Please sign in to comment.