查看页面时,根据用户权限删除或隐藏html链接

时间:2019-10-29 16:15:58

标签: javascript html css asp-classic

我有一个网页,其中包含100多个链接来控制一件硬件,我希望某些(来宾)用户能够看到整个页面,但基本上呈现/服务同一页面而没有任何href =“链接。

我已经基于用户设置了登录机制和会话/ Cookie,我只是想知道是否有一种更有效的方法来隐藏/删除所有的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 个答案:

答案 0 :(得分:1)

以下是一种快速解决方案。每个链接都封装在这样的东西中:

import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

class FuelTankTest {

    FuelTank tank;

    @BeforeEach
    void setUp() throws Exception {
        tank = new FuelTank(60, 10);
    }

//The csv source translates to the arguments in 
//void test(double amount, double expectedTankLevel) like following:
//"elm1, elm2" -> double amount = elm1 and double expectedTankLevel = elm2
    @ParameterizedTest
    @CsvSource({ "10,20", "20,30", "30.4711,40.4711" }) 
    void test(double amount, double expectedTankLevel) {
        tank.fill(amount);
        assertEquals(expectedTankLevel, tank.getTankLevel(), "There is a leak in tank");
    }

}

如果允许,以下JavaScript将动态插入链接:

<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>

答案 1 :(得分:1)

将链接包装在函数中

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" )%>

您可能可以泛化该功能,以便在类似情况下在整个站点使用它。