Удалить или скрыть ссылки HTML на основе разрешения пользователя при просмотре страницы - PullRequest
0 голосов
/ 29 октября 2019

У меня есть веб-страница с сотнями ссылок для управления оборудованием, я хотел бы, чтобы некоторые (гостевые) пользователи могли видеть всю страницу, но в основном отображать / обслуживать эту же страницу без какой-либо дополнительной ссылки "href ="links.

У меня уже есть механизм входа в систему и набор сессий / файлов cookie, основанный на пользователе, мне просто интересно, есть ли более эффективный способ скрыть / удалить все ссылки a href = ", кроме инкапсуляциикаждый в выражении IF ELSE.

Например, это то, что у меня есть сегодня ...

    <% If Session("adminuser") = "true" Then %><a target="hidden" href="/trigger.asp?cmd=ext-access&data=on">External Access is off</a>
    <% Else %>External Access is off
    <% End If %>

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Обернуть ссылку в функцию:

function adminLink( linkTarget, linkText ) {
    if( Session("adminuser") = "true" ) Then
        adminLink = "<a target='hidden' href='" & linkTarget & "'>" & linkText & "</a>"
    else
        adminLink = linkText
    end if
end function

Затем для каждой ссылки просто сделайте:

<%=adminLink( "/trigger.asp?cmd=ext-access&data=on", "External Access is off" )%>

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

1 голос
/ 29 октября 2019

Быстрое решение может быть следующим. Каждая ссылка заключена в нечто вроде этого:

<span class="admin-action" data-action="/trigger.asp?cmd=ext-access&data=on">External Access is off</span>
<span class="guest-action" data-action="/trigger.asp?cmd=hello-world&data=on">Hello World</span>

Следующий JavaScript будет динамически вставлять ссылку, если это разрешено:

<script>
<% If Session("adminuser") = "true" Then %>
document.querySelectorAll('.admin-action').forEach(function (e) {
   var action = e.getAttribute('data-action');
   e.innerHTML = '<a target="hidden" href="' + action + '">' + e.innerHTML + '</a>';
});
<% End If %>

<% If Session("guestuser") = "true" Then %>
document.querySelectorAll('.guest-action').forEach(function (e) {
   var action = e.getAttribute('data-action');
   e.innerHTML = '<a target="hidden" href="' + action + '">' + e.innerHTML + '</a>';
});
<% End If %>
<script>

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