у пользователя для фильтрации есть разрешения. с SQL и JS

#javascript #mysql #arrays #filtering #user-permissions

#javascript #mysql #массивы #фильтрация #пользователь-разрешения

Вопрос:

Я пытаюсь отфильтровать то, что видит мой пользователь, на основе его типа пользователя. У меня есть 3 типа пользователей в качестве параметров в базе данных. В настоящее время у меня есть массив, отфильтровывающий все, кроме «Национального представителя по связям», который работает. Хотя мне это нужно также для фильтрации дочерних элементов в этой таблице, называемой «nation». на основе связанной с пользователем нации. Я не уверен, что это лучший вариант или есть способ написать скрипт MySQL и сделать это на серверной части. Я открыт для всех предложений, вопросов или комментариев.

         console.log(reportingJSONObject);
    // Loop on directorates
    for (var i = 0; i < reportingJSONObject.tree.length; i  ) {
      // if isNLR, and not national liason rep skip 
      //hr_directory has an associated nation connected by nation
      var directorateObject = reportingJSONObject.tree[i];
      // var userNation = response.data.nation
      
      if (is_nlr=true) {
        console.log("isNLR");

        if (directorateObject.name != "National Liaison Representative")
        {
          console.log("skipping entry "   directorateObject.name);
          continue;
        }
        // gets rid of directorate entirely
        // if (directorate = directorateObject.name) {
        //   continue;
        // }
        // 
        // if (currentVue.nation = userNation) {
        //   continue;
        // }

      };
  

Ответ №1:

Часто бывает, что обе стороны имеют некоторые знания о личности пользователя и разрешениях. Код JS может представлять данные по-разному («использовать другой шаблон» и т.д.) На основе идентификатора и разрешений. Между тем, хост является полномочным: он ограничивает вызовы API, которые могут быть использованы, и определяет, что возвращается каждым из них. Он также предоставляет вызовы API, которые код JS использует для определения привилегий текущего пользователя.

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

Комментарии:

1. не могли бы вы привести пример того, что вы предлагаете? или указать на поток или тут, который делает это правильно?