BitOr() and simple addition will yield the same result in some cases: a = 1+2 = 3 b = BitOr(1,2) = 3
But not in others: c = 55 + 7 = 62 d = BitOr(55, 7) = 55 When you're doing BitOr, you're putting two number in binary format and keeping the bit turned on if EITHER or BOTH of the two is individually turned on 32 16 8 4 2 1 these are the headers x x o x x x is the decimal number, "55", where x is on and o is off o o o x x x is the decimal number, "7", where x is on and o is off ________________________ x x o x x x is the result of BitOr()ing the two numbers. Convert it back to decimal and you've got the decimal number, "55". -----Original Message----- From: Toby Tremayne [mailto:[EMAIL PROTECTED]] Sent: Thursday, April 04, 2002 2:59 AM To: hal helms Subject: Re[2]: secure tag and permissions hmmmkay, I tried the bitOr function like so: permissions = structNew(); permissions.admforumList = 1; permissions.admaddForum = 2; permissions.admeditForum = 4; permissions.admsaveForum = 8; permissions.admdeleteforum = 16; permissions.forumList = 32; permissions.threadlist = 64; permissions.viewthread = 128; permissions.addthread = 256; permissions.editThread = 512; permissions.saveThread = 1024; permissions.deleteThread = 2048; permissions.addMessage = 4096; permissions.editMessage = 8192; permissions.saveMessage = 16384; permissions.deleteMessage = 32768; permissions.anonGroup = permissions.forumList + permissions.threadList + permissions.viewThread; temp = permissions.addthread + permissions.saveThread + permissions.addMessage + permissions.editMessage + permissions.saveMessage; permissions.userGroup = bitOr(permissions.anonGroup,temp); temp2 = permissions.admforumList + permissions.admaddForum + permissions.admeditForum + permissions.admsaveForum + permissions.admdeleteForum + permissions.editThread + permissions.deleteThread + permissions.deleteMessage; permissions.adminGroup = bitOr(permissions.userGroup,temp2); but the values end up identical to what they where when I was just adding them together? Do I need sleep? Toby Thursday, April 04, 2002, 5:02:00 PM, you wrote: hh> John is in rare form today, first urging people to add code to their hh> prototypes and now suggesting that we abandon Bit math because it's hh> too much effort? I suspect someone has kidnapped my friend, John, hh> and is making him type these crazy things. hh> First to answer your question, the only problem you're having is hh> that you're effectively trying to add usergroups together. Nothing hh> wrong with that, but you need to use BitOr(). Example: hh> <cfset read = 1> hh> <cfset delete = 2> hh> <cfset edit = 4> hh> <cfset create = 8> hh> <cfset archive = 16> hh> <cfset download = 32> hh> <cfset clone = 64> hh> <cfset groupA = read + edit + create> hh> <cfset groupB = read + create + clone> hh> <cfset hal = BitOr( groupA, groupB )> hh> <cfoutput> hh> #BitAnd( hal, delete )# hh> </cfoutput> hh> will return 0. hh> Personally, I think the cf_secure tag is clearer and a heck of a lot hh> nicer than dragging around an interminably long list of text, but hh> that's just my opinion. hh> -----Original Message----- hh> From: John Quarto-vonTivadar [mailto:[EMAIL PROTECTED]] hh> Sent: Thursday, April 04, 2002 1:29 AM hh> To: [EMAIL PROTECTED] hh> Subject: Re: secure tag and permissions hh> why not just get away from the bitwise permissions...? that is one of hh> those things that sounds really great, and then in the end I'm not hh> convinced delivers anything worth the effort (as opposed to a hh> textual-based permission codes like "AdminForumList, AdminAddForum" etc. hh> sure the math looks kewler, but i find it just as useful to be able to hh> look at a list of English permission words and say "hey is this hh> permission in the list?" hh> "Brooklyn, NY" versus "11222-4401". Yes, the second has more precise hh> information. But ask someone from Esland which one is easier to find on hh> a map, and I bet the first one generates a faster associative memory hh> link. hh> as for your actual question: what happens if the User group has a hh> permission that Anon group already has? aren't you then adding it twice? hh> (see what I mean? I'd find it a hell of a lot easier to debug to just hh> ask "hey are these permissions in the list?") hh> ----- Original Message ----- hh> From: "Toby Tremayne" <[EMAIL PROTECTED]> hh> To: <[EMAIL PROTECTED]> hh> Sent: Thursday, April 04, 2002 1:02 AM hh> Subject: secure tag and permissions hh> This has got me stumped. I thought I'd grokked the bit permissions hh> system, but I must be wrong - this is my permissions file: hh> permissions = structNew(); hh> permissions.admforumList = 1; hh> permissions.admaddForum = 2; hh> permissions.admeditForum = 4; hh> permissions.admsaveForum = 8; hh> permissions.admdeleteforum = 16; hh> permissions.forumList = 32; hh> permissions.threadlist = 64; hh> permissions.viewthread = 128; hh> permissions.addthread = 256; hh> permissions.editThread = 512; hh> permissions.saveThread = 1024; hh> permissions.deleteThread = 2048; hh> permissions.addMessage = 4096; hh> permissions.editMessage = 8192; hh> permissions.saveMessage = 16384; hh> permissions.deleteMessage = 32768; hh> permissions.anonGroup = permissions.forumList + hh> permissions.threadList + permissions.viewThread; hh> permissions.userGroup = permissions.addthread + hh> permissions.saveThread + permissions.addMessage + hh> permissions.editMessage + permissions.saveMessage + hh> permissions.anonGroup; hh> permissions.adminGroup = permissions.admforumList + hh> permissions.admaddForum + permissions.admeditForum + hh> permissions.admsaveForum + permissions.admdeleteForum + hh> permissions.editThread + permissions.deleteThread + hh> permissions.deleteMessage + permissions.userGroup; hh> all well and good. But if I use the secure tag thus: hh> requiredPermission="#permissions.userGroup#" hh> userPermissions="#permissions.anonGroup#" hh> it returns true! how can that be? Could someone please draw me a hh> picture because I'm obviously not getting it... hh> Toby hh> ------------------------------------------------------------------------ hh> ---- hh> -------- hh> Life is Poetry, write it in your own words hh> ------------------------------------------------------------------------ hh> ---- hh> -------- hh> Toby Tremayne hh> Senior Technical Consultant hh> Code Poet and Zen Master of the Heavy Sleep hh> Lyricist Software hh> www.lyricist.com.au hh> m: +61 416 048 090 hh> icq: 13107913 ------------------------------------------------------------------------ ------------ Life is Poetry, write it in your own words ------------------------------------------------------------------------ ------------ Toby Tremayne Senior Technical Consultant Code Poet and Zen Master of the Heavy Sleep Lyricist Software www.lyricist.com.au m: +61 416 048 090 icq: 13107913 ==^================================================================ This email was sent to: [email protected] EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrFMa.bV0Kx9 Or send an email to: [EMAIL PROTECTED] T O P I C A -- Register now to manage your mail! http://www.topica.com/partner/tag02/register ==^================================================================
