Change getLevel(whatever it is called?) to take an optional bool saying that gods should fall into the 'top' level. Vote allocation, for example, would be done with this flag 'flase' (gods don't get extra votes). Most other things would probably want the flag 'true'.

I think that this type of thing demonstrates that there is a metaphor clash at work here. Levels and Permissions should be in principle orthagonal concepts. And they could/would be too, except for the fact that we would have to maintain groups with 25k members. Since it has historically been unweildy to make the groups handle levels weve ended going the other equally bad but easier to handle route and made level the system handle permissions.

IMO this means that we end up hardcoding lots of exceptions and weird rules into the codebase which then causes problems when we get to situations like right now where we would like to enhance the level system but cant easily becuase the level system isnt just a level system its also a permissions system.

The solution to this mess IMO is the proposal I made earlier about changing how the isApproved() mechanism works. To recap in a paragraph the idea is to add the ability for isApproved() to use logic based rules (via evalling htmlcode style rule nodes) to determine permissions. This simple extension would provide the flexibility to implement pretty much the complete requirements for all of our Approval needs. Thus we would define the level-group Saints as being a rule based on XP like wise for all the other levels. The CanApprove group would then include the rules for all levels above 5 plus gods. Etc etc.

I really think that if we go ahead with the level/experience change it aught to go along with a comprehensive upgrade and reworking of the permissions system as well, so that once and for all the two are disentangled and cleanly interfaced to each other.

Cheers


---
demerphq

    First they ignore you, then they laugh at you, then they fight you, then you win.
    -- Gandhi

    Flux8



In reply to Re^2: Todo list should additional levels be added by demerphq
in thread Todo list should additional levels be added by ysth

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.