split users with direct and inherited access to folders call
This commit is contained in:
parent
c751cb8e8f
commit
656b671962
|
@ -110,8 +110,26 @@ public class Controller : ControllerBase
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet(nameof(GetUsersWithAccessToFolder))]
|
[HttpGet(nameof(GetUsersWithDirectAccessToFolder))]
|
||||||
public ActionResult<IEnumerable<Object>> GetUsersWithAccessToFolder(Int64 id, Token authToken)
|
public ActionResult<IEnumerable<Object>> GetUsersWithDirectAccessToFolder(Int64 id, Token authToken)
|
||||||
|
{
|
||||||
|
var user = Db.GetSession(authToken)?.User;
|
||||||
|
if (user == null)
|
||||||
|
return Unauthorized();
|
||||||
|
|
||||||
|
var folder = Db.GetFolderById(id);
|
||||||
|
|
||||||
|
if (folder is null || !user.HasAccessTo(folder))
|
||||||
|
return Unauthorized();
|
||||||
|
|
||||||
|
return folder
|
||||||
|
.UsersWithDirectAccess()
|
||||||
|
.Where(u => u.IsDescendantOf(user))
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet(nameof(GetUsersWithInheritedAccessToFolder))]
|
||||||
|
public ActionResult<IEnumerable<Object>> GetUsersWithInheritedAccessToFolder(Int64 id, Token authToken)
|
||||||
{
|
{
|
||||||
var user = Db.GetSession(authToken)?.User;
|
var user = Db.GetSession(authToken)?.User;
|
||||||
if (user == null)
|
if (user == null)
|
||||||
|
@ -124,7 +142,6 @@ public class Controller : ControllerBase
|
||||||
|
|
||||||
return folder
|
return folder
|
||||||
.Ancestors()
|
.Ancestors()
|
||||||
.Prepend(folder)
|
|
||||||
.SelectMany(f => f.UsersWithDirectAccess()
|
.SelectMany(f => f.UsersWithDirectAccess()
|
||||||
.Where(u => u.IsDescendantOf(user))
|
.Where(u => u.IsDescendantOf(user))
|
||||||
.Select(u => new { folderId = f.Id, user = u }))
|
.Select(u => new { folderId = f.Id, user = u }))
|
||||||
|
|
Loading…
Reference in New Issue