Just thinking out loud...

##################################################
[Controller("thing")]
[VirtualAction("new", "create", Protect(Role("admin")))]
[VirtualAction("edit", "update", Protect(OwnerRelation))]
class ThingController : ApplicationController {

    [Action, Protect(Role("admin"))]
    void create ( Request req, Response res ) {...}

    [Action]
    void index ( Request req, Response res ) {...}

    [Action, Protect(Role("member"))]
    void show ( Request req, Response res ) {...}

    [Action, Protect(OwnerRelation)]
    void update ( Request req, Response res ) {...}

    [Action("delete"), Protect(Role("admin"))]
    void remove ( Request req, Response res ) {...}

}


[Model("thing")]
[ForbidMassAssignment]
class Thing : Model {

    [Attr, Shallow]
    [Validate( Present, Unique, Length("<=", 128) )]
    A!string name;

    [Attr, Shallow]
    [Validate( Length("[]", 16, 256) )]
    A!string description;

    [Attr(BelongsTo, User), Shallow]
    [Validate( Present )]
    A!User user;

    [Attr(HasMany, Tag, Through(Tagging))]
    [Validate( NoDuplicate )]
    A!(Tagging[]) tags;

    [Attr]
    [Validate( Present )]
    A!ulong size;

    [Attr]
    [Validate( Present )]
    A!ulong weight;

    @property
    ulong ratio () {...}

}
##################################################

My mind reels...

-- Chris Nicholson-Sauls

Reply via email to