07. oktober 2002 - 11:46Der er
13 kommentarer og 1 løsning
recursive opslag
Hej Eksperter Jeg arbejder i asp, men den her hører vist mest til her.
For Each User In Request.Form("project") 1 Set oRs1 = oConn.Execute("SELECT userid FROM NetsitePermissionGroup WHERE groups = " & User) do while oRs1.eof=false 2 Set oRs2 = oConn.Execute("SELECT pageid FROM webwebpages WHERE parentid = " & pageid) if oRs2.eof=false then do while oRs2.eof=false 3 Set oRs3 = oConn.Execute("SELECT pageid FROM webwebpages WHERE parentid = " & oRs2("pageid")) if oRs3.eof=false then do while oRs3.eof=false Set oRs = oConn.Execute("INSERT INTO webwebpagespermissions(pageid,userid,groupid) VALUES (" & oRs3("pageid") & "," & oRs1("userid") & "," & User & ")") Set oRs = Nothing oRs3.movenext loop else Set oRs = oConn.Execute("INSERT INTO webwebpagespermissions(pageid,userid,groupid) VALUES (" & oRs2("pageid") & "," & oRs1("userid") & "," & User & ")") Set oRs = Nothing end if oRs2.movenext loop else Set oRs = oConn.Execute("INSERT INTO webwebpagespermissions(pageid,userid,groupid) VALUES (" & page & "," & oRs1("userid") & "," & User & ")") Set oRs = Nothing end if oRs1.movenext loop set oRs1 = nothing Next
Jeg laver et system til at give brugere adgang til at opdaterer sider. Det skal virke således at hvis brugeren får adgang til en side har han også adgang til undersiderne. Derfor skal det her rettes til så det henter alle underside + undersidernes undersider og giver rettigheder til disse.
Lidt forklaring til koden: 1 Først vælges de brugere der skal have adgang 2 så finder jeg de sider hvor min side er overside 3 så forsøger jeg at finde undersider til de sider jeg netop har fundet. Men det er jo ikke nok for jeg skal jo lave en løkke der bliver ved med at finde siders undersider, indtil der ikke er flere.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
For Each User In Request.Form("project") Set oRs1 = oConn.Execute("SELECT userid FROM NetsitePermissionGroup WHERE groups = " & User) while not oRs1.eof RecursePages( "", ors1(0).value, GroupID) wend next
sub RecursePages(PageID, UserID, GroupID) dim rs
set rs = oconn.execute("SELECT pageid FROM webwebpages WHERE parrentid = " & pageid)
Jeg får en: Either BOF or EOF is True, or the current record has been deleted......osv i denne linie: rs.movenext
Her er din kode med mine tilretninger :-)
For Each User In Request.Form("project") Set oRs1 = oConn.Execute("SELECT userid FROM NetsitePermissionGroup WHERE groups = " & User) while not oRs1.eof RecursePages pid, ors1(0).value, user oRs1.movenext wend next oRs1.close set oRs1 = nothing
sub RecursePages(PageID, UserID, GroupID) set rs = oConn.execute("SELECT id FROM webwebpages WHERE pid = " & pageid) while not rs.eof oConn.Execute("INSERT INTO webwebpagespermissions(pageid,userid,groupid) VALUES (" & rs("id") & "," & UserID & "," & GroupID & ")") RecursePages rs("id"), UserID, GroupID rs.movenext wend end sub rs.close set rs = nothing
Ah okay. Jeg er med. Jamen så virker det jo. Det eneste der ikke er så godt er at det kun er parentid'erne der bliver gemt. Altså den første side bliver ikke gemt.
Det er jo ikke sikkert at det er på root niveau der skal gives rettigheder, men skidt nu med det. Du har hjulpet mig videre og det var det vigtigste. Tak for hjælpen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.