DDD java – где в этом случае поставить авторизацию?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 DDD java – где в этом случае поставить авторизацию?

Сообщение Anonymous »

Вопрос
Я изучаю DDD в чистом виде и создаю приложение Управление проектами.
  • Агрегированный корень: Проект
  • Проект имеет менеджера (

    Код: Выделить всё

    Employee
    ) и список задач.
  • Каждая задача назначается сотруднику.
  • Бизнес-правило: Только менеджер проекта или сотрудник, которому назначена задача, может пометить ее как выполненную.
Я пытаюсь решить, где применить это правило. Мой текущий дизайн:

Код: Выделить всё

class Employee {}

class Task {
private Employee assignee;

public boolean isAssignedTo(Employee employee) {
return assignee.equals(employee);
}

public void complete(Employee employee) {
// mark task as completed
}
}

class Project {
private Employee manager;
private List tasks;

public boolean isManagedBy(Employee employee) {
return manager.equals(employee);
}

public Task getTask(UUID taskId) {
// fetch task by ID
}

public void completeTask(UUID taskId, Employee employee) {
Task task = getTask(taskId);

if (!isManagedBy(employee) && !task.isAssignedTo(employee)) {
throw new AuthorizationException("Only manager or assignee can complete the task");
}

task.complete(employee);
}
}

Это нормально? Должен ли я перенести авторизацию на уровень обслуживания?


Подробнее здесь: https://stackoverflow.com/questions/798 ... -this-case
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»