thenetcircle/dino

View on GitHub
acl.yaml

Summary

Maintainability
Test Coverage
available: &AVAILABLE
  acls:
    - age
    - gender
    - membership
    - group
    - country
    - city
    - user_type
    - spoken_language
    - image
    - has_webcam
    - fake_checked
    - owner
    - admin
    - room_owner
    - moderator
    - superuser
    - crossroom
    - samechannel
    - sameroom
    - disallow
    - custom

validation:
    gender:
        type: "str_in_csv"
        value: "##db##"
        default: "m,w,p,tv,ts,ftm,mtf"
    membership:
        type: "str_in_csv"
        value: "##db##"
        default: "normal,premium,vip,tg,tg_p"
    samechannel:
        type: "samechannel"
    sameroom:
        type: "sameroom"
    disallow:
        type: "disallow"
    age:
        type: "range"
    group:
        type: "str_in_csv"
    user_type:
        type: "str_in_csv"
    country:
        type: "str_in_csv"
    city:
        type: "str_in_csv"
    spoken_language:
        type: "csv_in_csv"
    image:
        type: "str_in_csv"
        value: "y,n"
    has_webcam:
        type: "str_in_csv"
        value: "y,n"
    fake_checked:
        type: "str_in_csv"
        value: "y,n"
    owner:
        type: "str_in_csv"  # TODO: change to room_owner and channel_owner, doesn't work as expected now
        value: "y,n"
    room_owner:
        type: "is_room_owner"
    admin:
        type: "is_admin"
    moderator:
        type: "str_in_csv"  # TODO: how?
        value: "y,n"
    superuser:
        type: "is_super_user"
    custom:
        type: "custom"

channel:
    list:
        <<: *AVAILABLE
    create:
        <<: *AVAILABLE
    message:
        <<: *AVAILABLE
        exclude:
            - crossroom
            - samechannel
    crossroom:
        <<: *AVAILABLE
    whisper:
        acls:
           - disallow
    setacl:
        acls:
            - owner
            - admin
            - superuser
    ban:
        acls:
            - owner
            - admin
            - superuser

room:
    join:
        <<: *AVAILABLE
        exclude:
            - crossroom
            - samechannel
    autojoin:
        <<: *AVAILABLE
        exclude:
            - crossroom
            - samechannel
    list:
        <<: *AVAILABLE
        exclude:
            - crossroom
            - samechannel
    history:
        <<: *AVAILABLE
        exclude:
            - crossroom
    message:
        <<: *AVAILABLE
        exclude:
            - crossroom
            - samechannel
    crossroom:
        <<: *AVAILABLE
    setacl:
        acls:
            - owner
            - admin
            - superuser
    kick:
        acls:
            - owner
            - room_owner
            - disallow
            - moderator
            - admin
            - superuser
    ban:
        acls:
            - owner
            - disallow
            - admin
            - superuser