private void CheckStatusForRole(string role, OrderSessionStatus sessionStatus, OrderStatus?orderStatus = null) { if (!CanViewStatus(role, sessionStatus, orderStatus)) { throw new RestaurantUnauthorizedException("Nincs jogosultsága a megadott állapotú rendelések megtekintéséhez!"); } }
public async Task CheckRightsForStatusModification(OrderSessionStatus sessionStatus, OrderStatus oldStatus, OrderStatus newStatus) { var role = await UserService.GetCurrentUserRole(); if (role != Roles.Owner && oldStatus == OrderStatus.Cancelled) { throw new RestaurantUnauthorizedException("Nincs jogosultsága a rendelés módosításához!"); } if (role == Roles.Chef && (newStatus == OrderStatus.Served || newStatus == OrderStatus.Cancelled || oldStatus == OrderStatus.Ordering || newStatus == OrderStatus.Ordering)) { throw new RestaurantUnauthorizedException("Nincs jogosultsága a kért művelet végrehajtásához!"); } CheckStatusForRole(role, sessionStatus, oldStatus); }
public bool CanViewStatus(string role, OrderSessionStatus sessionStatus, OrderStatus?orderStatus = null) => sessionStatusVisibilities[role].Contains(sessionStatus) && (orderStatus == null || orderStatusVisibilities[role].Contains(orderStatus ?? 0));
public async Task CheckRightsForStatus(OrderSessionStatus sessionStatus, OrderStatus?orderStatus = null) { var role = await UserService.GetCurrentUserRole(); CheckStatusForRole(role, sessionStatus, orderStatus); }