У меня есть следующие объекты:
public class Company {
public Int32 CompanyId { get; set; }
public String Name { get; set; }
}
public class Project {
public Int32 ProjectId { get; set; }
public String Name { get; set; }
public virtual Company { get; set; }
}
public class ProjectUser {
public Int32 UserId { get; set; }
public String ProjectId { get; set; }
}
public class User {
public Int32 UserId { get; set; }
public String Name { get; set; }
}
Мне нужно создать конечную точку Api для получения проектов компании:
companies/{companyId}/projects
Этот URL имеет смысл, но возврат проектов должен быть ограниченto:
Проекты в предоставленной компании, с которой связан текущий аутентифицированный пользователь (ProjectUser);
ИЛИ
Все проекты в предоставленной компании, если текущий аутентифицированный пользователь является системным администратором.
Вопрос
Таким образом, этот запрос зависит от аутентифицированного пользователя ...
Должен ли я отправить UserId в запросеа затем проверить его разрешения в API?
Если да, каким должен быть URL, например, companies/{companyId}/projects
?
Или мне просто получить аутентифицированного пользователя и проверить его разрешения в API, не отправляяидентификатор пользователя в запросе?