setting user status in oe if user is disabled (#378)

* setting user status in oe if disabled
This commit is contained in:
Leila Lali
2017-06-14 15:54:50 -07:00
committed by GitHub
parent 05771592d9
commit 85dc0b9ae2
3 changed files with 71 additions and 3 deletions

View File

@@ -0,0 +1,38 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using Microsoft.SqlServer.Management.Smo;
namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
/// <summary>
/// Status for logins
/// </summary>
internal partial class UsersChildFactory : SmoChildFactoryBase
{
public override string GetNodeStatus(object context)
{
return UserCustomeNodeHelper.GetStatus(context);
}
}
internal static class UserCustomeNodeHelper
{
internal static string GetStatus(object context)
{
User user = context as User;
if (user != null)
{
if (!user.HasDBAccess)
{
return "Disabled";
}
}
return string.Empty;
}
}
}

View File

@@ -123,9 +123,9 @@ NodeType: FileGroup Label: PRIMARY SubType: Status:
NodeType: FullTextCatalog Label: AW2014FullTextCatalog SubType: Status:
NodeType: User Label: amy0 SubType: Status:
NodeType: User Label: dbo SubType: Status:
NodeType: User Label: guest SubType: Status:
NodeType: User Label: INFORMATION_SCHEMA SubType: Status:
NodeType: User Label: sys SubType: Status:
NodeType: User Label: guest SubType: Status:Disabled
NodeType: User Label: INFORMATION_SCHEMA SubType: Status:Disabled
NodeType: User Label: sys SubType: Status:Disabled
NodeType: DatabaseRole Label: db_accessadmin SubType: Status:
NodeType: DatabaseRole Label: db_backupoperator SubType: Status:
NodeType: DatabaseRole Label: db_datareader SubType: Status:

View File

@@ -0,0 +1,30 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel;
using Xunit;
namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ObjectExplorer
{
public class UsersChildFactoryTests
{
[Fact]
public void GetStatusShouldReturnEmptyStringGivenNull()
{
string expected = string.Empty;
string actual = UserCustomeNodeHelper.GetStatus(null);
Assert.Equal(expected, actual);
}
[Fact]
public void GetStatusShouldReturnEmptyStringGivenNotUser()
{
string expected = string.Empty;
string actual = UserCustomeNodeHelper.GetStatus(new Database());
Assert.Equal(expected, actual);
}
}
}