Avatar billede silentbob Nybegynder
18. juni 2003 - 10:27 Der er 11 kommentarer og
1 løsning

Leder efter function.

Jeg er ved at lave et brugersystem, hvor administrators har muligheden for at give special rettigheder til hver bruger.

Jeg har vil så lave niveauer for bruger. Siden skal så tjekke om bruger har rettigheder til denne side.

Jeg har så ledes givet gjort at:
level1 = 1
level2 = 2
level3 = 4
level4 = 8
level5 = 16

Fx hvis brugen har rettighedværdien 23, så betyder det at vedkommende kan se level 1,2,3 og 5 (16+4+2+1)

Der kan nemt blive flere niveauer end bare 5.

Findes der en function i VB, der dele værdien op og finde ud af om vedkommende har rettigheder til fx level2 ?

Eller må jeg selv lave en function?
Avatar billede silentbob Nybegynder
18. juni 2003 - 10:30 #1
Når jeg lige tænker over det, så var det nok en dum overskrift :/
Avatar billede nop Nybegynder
18. juni 2003 - 10:33 #2
if (brugerRettighed and level2)<>0 then
  --bruger har ret til level 2
end if

AND er ikke en funktion men en operator som altså gør hvad du har brug for, den er her brugt som bitvis and, fx :
rettinghed 2+3: i binær  110 (4+2=6)
andet med level 2 (bin)  010 (2)
giver                    010 (og altså forskellig fra 0)

--nop
Avatar billede nop Nybegynder
18. juni 2003 - 10:35 #3
ex:
10011000110
01010011101 and
===========
00010000100

111111
110111 and
======
110111

ok ? Bare brug det !

OR: (bare så du kan se)

1101100110
1011101001 or
==========
1111101111

Hej !
Avatar billede silentbob Nybegynder
19. juni 2003 - 08:58 #4
Det skal bruge til et lokal intranet system.

Hvilken operator skal jeg bruge for at lave 4 om til et binær tal?

Og hvilken operator skal jeg bruge for at tjekke om ved kommende har adgang til fx. lvl 2 ?
Avatar billede nop Nybegynder
19. juni 2003 - 09:10 #5
dim level(1 to 8) as integer
for i=1 to 8
  x=1
  for j=2 to i
    x=x+x
  next
  level(i)=x
next

nu har du et array 1 til 8 som kan bruges sammen med and til at teste brugerrettigheder.

fx som du sprg. om:
...
if (brugerMaske and level(2))<>0 then goto brugerOk
...

Undskyld hvis syntaxen ikke er helt ok, normalt programmerer jeg i delphi, men jeg har da brugt vb seriøst (1999-2000).
Du må spørge hvis du ikke forstår, jeg oplever at du spørger om det samme igen.
--nop
Avatar billede martin_moth Mester
19. juni 2003 - 10:00 #6
Jeg tror du må lave din egen function. Men det er jo også nemt nok, konverter tallene til binær og læg sammen, så du kan se hvad rettigheder fx. 23 svarer til. Og der er masser af eksempler på konvertering af integer -> bin på E :o)
Avatar billede martin_moth Mester
19. juni 2003 - 10:01 #7
Doh! 'nop' er allerede i fuld gang med det. Jeg smutter igen...
Avatar billede silentbob Nybegynder
19. juni 2003 - 10:25 #8
du skal have tak for hjælpen, men jeg tror bare at jeg spørger min roommate, han har lidt mere styr på det.
Avatar billede nop Nybegynder
19. juni 2003 - 10:30 #9
READY
|
Avatar billede nop Nybegynder
19. juni 2003 - 10:34 #10
Forresten kan du osse bruge level tabellen til at beregne brugerMasken med.
Fx: brugerM=level(2)+level(5)+level(6)
Så vil brugerM indeholde 50 (2+16+32).
Tak for pointene.
Avatar billede silentbob Nybegynder
19. juni 2003 - 10:51 #11
Det er også sådan - jeg har det pt. jeg fik bare at vide at min roommate, at det ville være bedre at bruge binære værdien.

Kan nogle så fortælle hvordan jeg skal skrive det i ASP/VB så at den tjekker om rettighedsværdien fx 58 indeholder værdien 2... så ledes at bruger har rettigheder til de pågældende sider :/
Avatar billede nop Nybegynder
19. juni 2003 - 11:01 #12
58 er vel egentlig osse/har en binær værdi, det er jo et tal og ikke et 5-tal og et 8-tal (eller hvad !!).
Men..Du har jo fået svaret så mon ikke du skulle prøve at forstå det, fx 58 and 2 vil give enten 0 eller 2, så hvis du tester om <>0 så har du et flag for om brugeren må eller ikke må.
Du kunne osse bare lave et array til brugeren med et antal bool som er true hvis brugeren må og false hvis ikke, det kan du måske bedre få til at virke.

Held og lykke. --nop
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

JP/Politikens Hus

Digital Workplace Supporter
Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging