Как сервер отдыха должен управлять включением пользователя? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть Java-бэкэнд для отдыха, использующий Java-7 и приложение реагирования / редукции.Одно и то же приложение используется разными заказчиками.Каждый клиент может запросить m ролей, которые отличаются от ролей других клиентов.Один клиент может, например, заплатить, чтобы увидеть столбец в списке, который не должен быть виден для другого клиента.Вопрос заключается в следующем. Существует ли шаблон или метод для легкой обработки возможностей скрытия или отображения столбцов в списке или скрытия / отображения полей в форме?(пользователь enablings)

CUSTOMER X платит, чтобы увидеть номер телефона в списке клиентов

CUSTOMER Y вообще не должен видеть номер телефона.

Приложение выпущено для обоихто же самое.

Как сервер должен передавать эту информацию во внешнее приложение, не связываясь с ним?

Спасибо.

Добавлен еще один вопрос позже:

Да, часть реакции ясна.Я добавлю некоторую информацию, чтобы быть более понятным.Дело в том, «Если я хочу скрыть поле« Номер телефона »из формы создания?»Как сервер должен предоставить эту информацию, передний конец?Должен ли он отправлять пустой объект данных?

1 Ответ

0 голосов
/ 23 октября 2018

Это упрощенный пример, но он должен дать вам общее представление о том, как условно извлекать и отображать данные на основе роли пользователя.

  1. Front-end вызывает конечную точку API с данными аутентификации (в данном примере userId и token)
  2. Backend определяетРоль, основанная на данных аутентификации, возвращает данные, относящиеся к этой роли (например, включает phone, если их роль позволяет это)
  3. Front * end отображает данные ответа (например, render "Hidden" if phone отсутствует)

Вот как может выглядеть ваш React компонент:

class CustomerList extends Component {
    constructor(props) {
        super(props);
        this.state = {
            customers: []
        };
    }
    componentDidMount() {
        // fetch list data
        fetch('https://myapi.com/api/getCustomers', {userId: 12345, token: someToken})
            .then(res => res.json())
            .then(response => {
                this.setState({customers: response.customers});
            });
    }
    render() {
        const { customers } = this.state;
        return (
            <div className="customers">
                {customers.length && 
                    <ul>
                        {customers.map(customer => (
                            <li>
                                <div className="name">
                                    Name: {customer.name}
                                </div>
                                <div className="phone">
                                    Phone: {customer.phone || "Hidden"}
                                </div>
                            </li>
                        ))}
                    </ul>
                }
                {!customers.length && 
                    <div>Loading...</div>
                }
            </div>
        );
    }
}

Роль - это только одно предложение.В бэкэнде есть и другие способы, которыми вы можете определить, какие данные имеет доступ к просмотру у текущего пользователя.Дело в том, что данные, которые вы возвращаете во внешний интерфейс, должны включать только то, что пользователь имеет разрешение на просмотр.Вы не должны возвращать все данные и затем условно отображать их во внешнем интерфейсе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...