mirror of
https://github.com/TalAloni/SMBLibrary.git
synced 2025-07-21 08:45:54 +02:00
INTLMAuthenticationProvider: Removed ListUsers from the API
This commit is contained in:
parent
c60ee93dd9
commit
457d978f70
2 changed files with 11 additions and 12 deletions
|
@ -29,7 +29,5 @@ namespace SMBLibrary.Server
|
|||
/// The password is correct but 'limitblankpassworduse' is set to 1 (logon over a network is disabled for accounts without a password).
|
||||
/// </remarks>
|
||||
bool FallbackToGuest(string userName);
|
||||
|
||||
List<string> ListUsers();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,11 +84,10 @@ namespace SMBServer
|
|||
}
|
||||
|
||||
|
||||
List<string> allUsers = provider.ListUsers();
|
||||
ShareCollection shares;
|
||||
try
|
||||
{
|
||||
shares = ReadShareSettings(allUsers);
|
||||
shares = ReadShareSettings();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
@ -150,7 +149,7 @@ namespace SMBServer
|
|||
return users;
|
||||
}
|
||||
|
||||
private ShareCollection ReadShareSettings(List<string> allUsers)
|
||||
private ShareCollection ReadShareSettings()
|
||||
{
|
||||
ShareCollection shares = new ShareCollection();
|
||||
XmlDocument document = GetSettingsXML();
|
||||
|
@ -162,23 +161,25 @@ namespace SMBServer
|
|||
string sharePath = shareNode.Attributes["Path"].Value;
|
||||
|
||||
XmlNode readAccessNode = shareNode.SelectSingleNode("ReadAccess");
|
||||
List<string> readAccess = ReadAccessList(readAccessNode, allUsers);
|
||||
List<string> readAccess = ReadAccessList(readAccessNode);
|
||||
XmlNode writeAccessNode = shareNode.SelectSingleNode("WriteAccess");
|
||||
List<string> writeAccess = ReadAccessList(writeAccessNode, allUsers);
|
||||
List<string> writeAccess = ReadAccessList(writeAccessNode);
|
||||
FileSystemShare share = new FileSystemShare(shareName, new DirectoryFileSystem(sharePath));
|
||||
share.OnAccessRequest += delegate(object sender, AccessRequestArgs args)
|
||||
{
|
||||
bool hasReadAccess = Contains(readAccess, "Users") || Contains(readAccess, args.UserName);
|
||||
bool hasWriteAccess = Contains(writeAccess, "Users") || Contains(writeAccess, args.UserName);
|
||||
if (args.RequestedAccess == FileAccess.Read)
|
||||
{
|
||||
args.Allow = Contains(readAccess, args.UserName);
|
||||
args.Allow = hasReadAccess;
|
||||
}
|
||||
else if (args.RequestedAccess == FileAccess.Write)
|
||||
{
|
||||
args.Allow = Contains(writeAccess, args.UserName);
|
||||
args.Allow = hasWriteAccess;
|
||||
}
|
||||
else // FileAccess.ReadWrite
|
||||
{
|
||||
args.Allow = Contains(readAccess, args.UserName) && Contains(writeAccess, args.UserName);
|
||||
args.Allow = hasReadAccess && hasWriteAccess;
|
||||
}
|
||||
};
|
||||
shares.Add(share);
|
||||
|
@ -186,7 +187,7 @@ namespace SMBServer
|
|||
return shares;
|
||||
}
|
||||
|
||||
private List<string> ReadAccessList(XmlNode node, List<string> allUsers)
|
||||
private List<string> ReadAccessList(XmlNode node)
|
||||
{
|
||||
List<string> result = new List<string>();
|
||||
if (node != null)
|
||||
|
@ -194,7 +195,7 @@ namespace SMBServer
|
|||
string accounts = node.Attributes["Accounts"].Value;
|
||||
if (accounts == "*")
|
||||
{
|
||||
result.AddRange(allUsers);
|
||||
result.Add("Users");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue