@using Syncfusion.Blazor.FileManager
<div class="control-section">
<SfFileManager TValue="FileManagerDirectoryContent">
<FileManagerEvents TValue="FileManagerDirectoryContent" OnSend="send" ></FileManagerEvents>
<FileManagerAjaxSettings Url="/api/Home/FileOperations"
UploadUrl="/api/Home/Upload"
DownloadUrl="/api/Home/Download"
GetImageUrl="/api/Home/GetImage">
</FileManagerAjaxSettings>
</SfFileManager>
</div>
@code {
SfFileManager<FileManagerDirectoryContent> filemanager;
public void send(Syncfusion.Blazor.FileManager.BeforeSendEventArgs args)
{
Dictionary<string, object> data = new Dictionary<string, object>();
data.Add("User_name", "user1");
args.CustomData = data;
}
}
public class FileManagerDirectoryContent1
{
public Dictionary<string, object> CustomData { get; set; }
public FileManagerDirectoryContent[] Data { get; set; }
public bool ShowHiddenItems { get; set; }
public string SearchString { get; set; }
}
[Route("FileOperations")]
public object FileOperations([FromBody] FileManagerDirectoryContent1 args)
{
username = args.CustomData["User_name"].ToString();
this.operation.SetRules(GetRules(username));
}
public AccessDetails GetRules(string user_value)
{
AccessDetails accessDetails = new AccessDetails();
List<AccessRule> accessRules = new List<AccessRule> {
// For Default User
new AccessRule { Path = "/*.*", Role = "Adminstrator", Read = Permission.Allow, Write = Permission.Deny, Copy = Permission.Deny, WriteContents = Permission.Deny, Upload = Permission.Deny, Download = Permission.Deny},
new AccessRule { Path = "/*.*", Role = "Adminstrator", Read = Permission.Allow, Write = Permission.Deny, Copy = Permission.Deny, WriteContents = Permission.Deny, Upload = Permission.Deny, Download = Permission.Deny, IsFile=true},
};
accessDetails.AccessRules = accessRules;
if (user_value == "user1")
{
// Here, you need to set the role for FileManager component.
accessDetails.Role = "Adminstrator";
}
else
{
accessDetails.Role = "Document Manager";
}
return accessDetails;
} |