%
Dim arTableName(18)
'arTableName(0) = "galeria"
'arTableName(1) = "sw_avaliar"
'arTableName(2) = "sw_boletimtipos"
arTableName(0) = "sw_comentarios"
'arTableName(4) = "sw_dicionario"
'arTableName(5) = "sw_downloads"
'arTableName(6) = "sw_downloadscategoria"
'arTableName(7) = "sw_emailtemplates"
arTableName(1) = "sw_enqueteperguntas"
arTableName(2) = "sw_enqueterespostas"
'arTableName(10) = "sw_enquetevotos"
'arTableName(11) = "sw_entrevista"
'arTableName(12) = "sw_entrevistarespostas"
arTableName(3) = "sw_galeria"
'arTableName(14) = "sw_galeria2album"
'arTableName(15) = "sw_galeria2imagem_talvez seja inutil"
'arTableName(16) = "sw_galeriaalbum"
'arTableName(17) = "sw_galeriaimage2tag"
arTableName(4) = "sw_galeriaimagens"
'arTableName(19) = "sw_galeriatags"
arTableName(5) = "sw_noticias"
arTableName(6) = "sw_noticiasautores"
arTableName(7) = "sw_noticiascategorias"
arTableName(8) = "sw_noticiasespecial"
'arTableName(24) = "sw_noticiassecao"
'arTableName(25) = "sw_noticiassecoes"
arTableName(9) = "sw_noticiastags"
arTableName(10) = "sw_podcasts"
'arTableName(28) = "sw_recomendar"
arTableName(11) = "sw_tags"
'arTableName(30) = "sw_uf"
arTableName(12) = "sw_videos"
arTableName(13) = "sw_usuarios"
arTableName(14) = "sw_edicoes"
arTableName(15) = "sw_leitorreporter"
arTableName(16) = "banner_zonas"
arTableName(17) = "banner_anunciantes"
arTableName(18) = "banner_banners"
%>
<%
' Advanced User Level Security for storckweb 5+
' Dynamic user level security
' User level definition table/field names
Const ewUsrLvlTbl = "`sw_usuariosgrupos`"
Const ewUsrLvlIdFld = "`UsuarioGrupoID`"
Const ewUsrLvlNameFld = "`UsuarioGrupoDesc`"
' User Level privileges table/field names
Const ewUsrLvlPrivTbl = "`sw_usuariospermissoes`"
Const ewUsrLvlPrivTblNameFld = "`UsuarioPTabela`"
Const ewUsrLvlPrivUsrLvlIdFld = "`UsuarioPGrupo`"
Const ewUsrLvlPrivPrivFld = "`UsuarioPermissao`"
Const ewAllowAdd = 1
Const ewAllowDelete = 2
Const ewAllowEdit = 4
Const ewAllowView = 8
Const ewAllowList = 8
Const ewAllowReport = 8
Const ewAllowSearch = 8
Const ewAllowAdmin = 16
Dim arUserLevel ' User Level definitions
Dim arUserLevelPriv ' User Level privileges
' Define User Level Variables
Dim ewCurLvl ' Current user level
ewCurLvl = CurrentUserLevel()
Dim ewCurSec
' Dynamic user level security
' Sub to get current user level settings from database
Sub SetUpUserLevel
SetUpUserLevelEx(CurrentUserLevel)
' Save the user level to session variable
SaveUserLevel()
End Sub
' Sub to get (all) user level settings from database
Sub SetUpUserLevelEx(UserLevel)
If UserLevel = "" Or IsNull(UserLevel) Or Not IsNumeric(UserLevel) Then Exit Sub
Dim conn, rs, Sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str
' Get the user level definitions
Sql = "SELECT " & ewUsrLvlIdFld & ", " & ewUsrLvlNameFld & " FROM " & ewUsrLvlTbl
If UserLevel >= -1 Then Sql = Sql & " WHERE " & ewUsrLvlIdFld & "=" & UserLevel
Set rs = conn.Execute(Sql)
If Not rs.Eof Then arUserLevel = rs.GetRows
rs.Close
Set rs = Nothing
' Get the user level privileges
Sql = "SELECT " & ewUsrLvlPrivTblNameFld & ", " & ewUsrLvlPrivUsrLvlIdFld & _
", " & ewUsrLvlPrivPrivFld & " FROM " & ewUsrLvlPrivTbl
If UserLevel >= -1 Then Sql = Sql & " WHERE " & ewUsrLvlPrivUsrLvlIdFld & "=" & UserLevel
Set rs = conn.Execute(Sql)
If Not rs.Eof Then arUserLevelPriv = rs.GetRows
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
End Sub
' Get current user privilege
Function CurrentUserLevelPriv(TableName)
CurrentUserLevelPriv = GetUserLevelPrivEx(TableName, CurrentUserLevel)
End Function
' Get anonymous user privilege
Function GetAnonymousPriv(TableName)
GetAnonymousPriv = GetUserLevelPrivEx(TableName, 0)
End Function
' Get user privilege based on table name and user level
Function GetUserLevelPrivEx(TableName, UserLevel)
GetUserLevelPrivEx = 0
If CStr(UserLevel) = "-1" Then ' System Administrator
GetUserLevelPrivEx = 31
ElseIf UserLevel >= 0 Then
If IsArray(arUserLevelPriv) Then
Dim I
For I = 0 to UBound(arUserLevelPriv, 2)
If CStr(arUserLevelPriv(0, I)) = CStr(TableName) And _
CStr(arUserLevelPriv(1, I)) = CStr(UserLevel) Then
GetUserLevelPrivEx = arUserLevelPriv(2, I)
If IsNull(GetUserLevelPrivEx) Then GetUserLevelPrivEx = 0
If Not IsNumeric(GetUserLevelPrivEx) Then GetUserLevelPrivEx = 0
GetUserLevelPrivEx = CLng(GetUserLevelPrivEx)
Exit For
End If
Next
End If
End If
End Function
' Get current user level name
Function CurrentUserLevelName
GetUserLevelName(CurrentUserLevel)
End Function
' Get user level name based on user level
Function GetUserLevelName(UserLevel)
GetUserLevelName = ""
If CStr(UserLevel) = "-1" Then
GetUserLevelName = "Administrator"
ElseIf UserLevel >= 0 Then
If IsArray(arUserLevel) Then
Dim I
For I = 0 to UBound(arUserLevel, 2)
If CStr(arUserLevel(0, I)) = CStr(UserLevel) Then
GetUserLevelName = arUserLevel(1, I)
Exit For
End If
Next
End If
End If
End Function
' Sub to display all the User Level settings (for debug only)
Sub ShowUserLevelInfo
Dim I
If IsArray(arUserLevel) Then
Response.Write "User Levels:
"
Response.Write "UserLevelId, UserLevelName
"
For I = 0 To UBound(arUserLevel, 2)
Response.Write " " & arUserLevel(0, I) & ", " & _
arUserLevel(1, I) & "
"
Next
Else
Response.Write "No User Level definitions." & "
"
End If
If IsArray(arUserLevelPriv) Then
Response.Write "User Level Privs:
"
Response.Write "TableName, UserLevelId, UserLevelPriv
"
For I = 0 To UBound(arUserLevelPriv, 2)
Response.Write " " & arUserLevelPriv(0, I) & ", " & _
arUserLevelPriv(1, I) & ", " & arUserLevelPriv(2, I) & "
"
Next
Else
Response.Write "No User Level privilege settings." & "
"
End If
Response.Write "CurrentUserLevel = " & CurrentUserLevel & "
"
End Sub
' Function to check privilege for List page (for menu items)
Function AllowList(TableName)
AllowList = CBool(CurrentUserLevelPriv(TableName) And ewAllowList)
End Function
' Get current user name from session
Function CurrentUserName
CurrentUserName = Session(ewSessionUserName) & ""
End Function
' Get current user id from session
Function CurrentUserID
CurrentUserID = Session(ewSessionUserID) & ""
End Function
' Get current parent user id from session
Function CurrentParentUserID
CurrentParentUserID = Session(ewSessionParentUserID) & ""
End Function
' Get current user level from session
Function CurrentUserLevel
If IsLoggedIn Then
CurrentUserLevel = Session(ewSessionUserLevel)
Else
CurrentUserLevel = 0 ' Anonymous if not logged in
End If
End Function
' Check if user is logged in
Function IsLoggedIn
IsLoggedIn = (Session(ewSessionStatus) = "login")
End Function
' Check if user is system administrator
Function IsSysAdmin
IsSysAdmin = (Session(ewSessionSysAdmin) = 1)
End Function
' Save user level to session
Sub SaveUserLevel
Session(ewSessionArUserLevel) = arUserLevel
Session(ewSessionArUserLevelPriv) = arUserLevelPriv
End Sub
' Load user level from session
Sub LoadUserLevel
If Not IsArray(Session(ewSessionArUserLevel)) Then
SetupUserLevel
SaveUserLevel
End If
arUserLevel = Session(ewSessionArUserLevel)
arUserLevelPriv = Session(ewSessionArUserLevelPriv)
End Sub
%>