Club permissions / ranks overhaul

Started by Joshy, June 05, 2016, 17:35

Joshy

This is a long and fairly detailed post (sorry I got carried away) - the tl;dr is to allow clubs to make their own ranks, each with their own set of permissions. See the example below.


Let's start by describing the current system. I think this is how it's set up atm (it's been awhile since I've done anything to do with clubs (SAFA stopped operations a long time ago)). Let's hope I covered most things:

Founder - has all permissions from leader +

  • can buy new club base
  • can leave club base
  • can change club settings
  • can delete club (technically leave club)
  • can transfer ownership of club

Leader - has all permissions from staff +

  • can buy club vehicles
  • can promote members to staff / leader
  • can remove / kick members
  • can post and remove posts in noticeboard
  • can remove posts in message board
  • can renew base

Staff - has all permissions from members +

  • can clamp vehicles
  • can unspawn vehicles

Member

  • can park in base
  • can post in message board
  • can donate
  • can use club vehicles
  • can leave club (I guess this is obvious)

This is a good enough system only if you can trust your club leaders / staff. Otherwise these people can do things such as:
  • wasting club funds on vehicles / unnecessary base renewals
  • kick members from club with no reason (club rules violation!)
  • promote their friends to leaders so they can do bad stuff too
  • vandalise noticeboard / message boards
  • clamp everyone's vehicles (club rules violation!)
In the event of any of these occurring, the founder / leaders are blamed for trusting someone bad and admins will not do anything about it, but the club system does not allow leaders to finely control permissions for their members so for example, if they want someone to buy club vehicle they have to promote them to leader, allowing unnecessary permissions like club member management. This violates the principle of least privilege (yes this is a computer science term but it's still relevant) - users should only be allowed to do the stuff that they actually need, and not the things they don't need.


There's a few ways around this... I will say that I feel like the club system should be re-written from the ground up, with this idea being the very start of things (since you should be able to add permissions later on)

  • The obvious one (to me) being to get rid of ranks and assign permissions one-by-one per member:

    • Inconvenient to use - have to assign permissions manually for each new leader (tedious)
    • If done correctly - does not break principle of least privilege
  • Allow custom ranks and assign permissions to each one of these ranks, then assign each member to one of these ranks:

    • Similar to how forums work - membergroups are created and permissions are assigned to them
    • Could start with the default "leader/staff/member" rank system, and allow customisation
    • Can have special ranks like "VIP" ranks within clubs, allowing those who are VIPs to do special things

      • Could tie into club base parking system - e.g. "if VIP, allow 1 more vehicle in base"
    • If paychecks or something similar was implemented, could have score-based ranks similar to how you get new ranks with truck loads
    • This option only allows 1 rank per member - but this is really easy to implement database/code-wise
  • Same as option 2, but allow member to be assigned to more than one rank
    • A lot more complicated to correctly implement in the database / code
    • Can be really flexible for member management
    • Can allow many ranks at once (so a member could be VIP and Staff at the same time etc)

In addition to this, add more permissions:

  • split buy club vehicles permission into

    • can buy club vehicles only when approved by someone who can approve them

      • a member can request to buy a vehicle, and someone else has to approve it
      • with the /sharevehicle commands added, this is a bit less important but it's still nice nevertheless
    • can buy club vehicles without approval

      • only for trusted members
    • can approve club vehicle purchase requests

      • should only be given to trusted members (and ideally not be able to approve own requests)
    • allow some currently founder-only permissions to be granted to others

      • maybe allow some members to be able to change club settings (auto-accept etc)


Example of how this could be set up
A club has the following ranks:

  • founder (this always exists btw - has access to every single permission available)
  • manager - can promote people to the below ranks (but not to manager rank, only founder can choose managers)
  • vehicle manager - can buy vehicles, and approve vehicle purchase requests
  • parking staff - can clamp (maybe repark) vehicles
  • recruiters - can allow people to join the club
  • event organisers - can create club events
  • VIPs - members who might have donated a lot of money or contributed in some way - could be allowed to park in base, whereas regular members cannot?
  • members - can request vehicles to be purchased
  • bad members - those who break the club's rules could be denied access to club vehicles (if they leave the vehicles with no fuel / in bad state constantly)

As you can tell... this may be the start to clubs becoming companies. I personally have no objections to that if it works well.


Counter-arguments
Some might say this is way too complicated - to that I say that the current system should remain (leader/staff/member) and then founders can use the permission system only if they want to. In addition, this should be implemented on the website since it's a lot easier to do this on the web rather than in-game.

Some might say this isn't needed - I feel it's needed since imo the club system needs a revamp anyway and clubs should have better controls who does what, otherwise you end up with situations like: http://www.forum.convoytrucking.net/index.php?topic=54196.0

Scripters might say this is too complicated to code - k yes it requires more database tables / fields - but if that's stopping you then many other suggestions are pretty much out of reach as well, so I'd say it's about time that you learn CREATE/ALTER TABLE syntax and how to use the gamemode migrations system. I very much suggest rewriting the club system though, it will be easier than trying to adapt the current code to this system.


I don't really blame you for not reading the entire post - this is just my vision of the proposed idea
Fun fact: 16 [list]s and 56 [li]st elements were used in this post.
Mfw this is 1126 words long... I've written university essays shorter than this
[comment]test[/comment]
LAST SEEN
TOTAL TIME ON SERVER
SCORE
TRUCK LOADS
CONVOY SCORE
ACHIEVEMENTS
ARTIC
DUMPER
VAN
FUEL
CEMENT
ARRESTS
CARS STOLEN
COACH
PLANE
HELICOPTER
TOW TRUCK
LIMO
TRASH
ARMORED VAN
BURGLARIES
ARMORED VANS STOLEN
MISSIONS FAILED
OVERLOADED
FINES PAID
TOTAL SPENT ON FUEL
INTEREST EARNED
DISTANCE TRAVELLED
TIME IN JAIL
LAST MISSION
Generated using Azure Functions & CloudFlare Workers using the Convoy Trucking API. Updates every around 5 minutes. See the original SVG image. View source code (not updated with function yet)




UncleDrew

what if founder can allow and not allow leaders to buy vehicle?
what if he donate 500k to the club? and bought a swat tank. its so unfair to the club (specially with base). why? coz swat tank coasted 10 mil and u still need to renew your base. so the founder can allow or not allow the leaders to buy vehicles.
For Example:
Founder:Gen.McMuffin$ --> Leader:Gen.McDonuts( Allow to buy vehicles/dont allow to buy vehicle) (for clubs only.)
so that this situation wont ever happen. AGAIN. : http://www.forum.convoytrucking.net/index.php?topic=54196.0

AviatorAysar

Bro just a question??

Why the hell did you resign??? ::) ::) ::)

Why????

I know is today's news paper, but I read every single word, and accept and agreed with every single point you said..

I was coming to forum to new topic in complaints for david problem by saying; since admins are not responsible people r taking advantage, so why dont we make agreements, if leaders dis follow them they got punished as scamming..


but this is much better, i didnt suggest it bcz ik what their answers will beee and how they will be, but I wish they answer you the same, for your old position  :-* :-*  Agree +1
LAST SEEN
TOTAL TIME ON SERVER
SCORE
TRUCK LOADS
CONVOY SCORE
ACHIEVEMENTS
ARTIC
DUMPER
VAN
FUEL
CEMENT
ARRESTS
CARS STOLEN
COACH
PLANE
HELICOPTER
TOW TRUCK
LIMO
TRASH
ARMORED VAN
BURGLARIES
ARMORED VANS STOLEN
MISSIONS FAILED
OVERLOADED
FINES PAID
TOTAL SPENT ON FUEL
INTEREST EARNED
DISTANCE TRAVELLED
TIME IN JAIL
LAST MISSION

UncleDrew

Quote from: CesarVialpando$$ on June 05, 2016, 18:09
Bro just a question??

Why the hell did you resign??? ::) ::) ::)

Why????

I know is today's news paper, but I read every single word, and accept and agreed with every single point you said..

I was coming to forum to new topic in complaints for david problem by saying; since admins are not responsible people r taking advantage, so why dont we make agreements, if leaders dis follow them they got punished as scamming..


but this is much better, i didnt suggest it bcz ik what their answers will beee and how they will be, but I wish they answer you the same, for your old position  :-* :-*  Agree +1
remember, Joshy retired coz of job.

Joshy

Quote from: Gen.McMuffin$ on June 05, 2016, 18:09
what if founder can allow and not allow leaders to buy vehicle?
what if he donate 500k to the club? and bought a swat tank. its so unfair to the club (specially with base). why? coz swat tank coasted 10 mil and u still need to renew your base. so the founder can allow or not allow the leaders to buy vehicles.
For Example:
Founder:Gen.McMuffin$ --> Leader:Gen.McDonuts( Allow to buy vehicles/dont allow to buy vehicle) (for clubs only.)
so that this situation wont ever happen. AGAIN. : http://www.forum.convoytrucking.net/index.php?topic=54196.0
Using this system you could set leaders to not be able to purchase club vehicles (so only founder can buy them), or allow them to request to purchase a vehicle (so the founder can approve each request manually to stop anyone buying SWAT tanks (especially since they are a massive waste of money)).

Since the system requires someone to have full trust (like administrators on forum) the founder can do absolutely anything though, nothing can be done about that - it is the founder's club after all.

To make the SWAT tank situation fair, you could say "you must donate $x before you can buy vehicle for $x" - this would be a good club rule however the player may as well buy the vehicle themselves and use /sharevehicle.
[comment]test[/comment]
LAST SEEN
TOTAL TIME ON SERVER
SCORE
TRUCK LOADS
CONVOY SCORE
ACHIEVEMENTS
ARTIC
DUMPER
VAN
FUEL
CEMENT
ARRESTS
CARS STOLEN
COACH
PLANE
HELICOPTER
TOW TRUCK
LIMO
TRASH
ARMORED VAN
BURGLARIES
ARMORED VANS STOLEN
MISSIONS FAILED
OVERLOADED
FINES PAID
TOTAL SPENT ON FUEL
INTEREST EARNED
DISTANCE TRAVELLED
TIME IN JAIL
LAST MISSION
Generated using Azure Functions & CloudFlare Workers using the Convoy Trucking API. Updates every around 5 minutes. See the original SVG image. View source code (not updated with function yet)




AviatorAysar

No u said first people apply application, we can accept application, with have a field to write amount, so whenever member can buy it but after donation application expired in 5 days for example
LAST SEEN
TOTAL TIME ON SERVER
SCORE
TRUCK LOADS
CONVOY SCORE
ACHIEVEMENTS
ARTIC
DUMPER
VAN
FUEL
CEMENT
ARRESTS
CARS STOLEN
COACH
PLANE
HELICOPTER
TOW TRUCK
LIMO
TRASH
ARMORED VAN
BURGLARIES
ARMORED VANS STOLEN
MISSIONS FAILED
OVERLOADED
FINES PAID
TOTAL SPENT ON FUEL
INTEREST EARNED
DISTANCE TRAVELLED
TIME IN JAIL
LAST MISSION

UncleDrew

Quote from: Joshy on June 05, 2016, 18:29
Quote from: Gen.McMuffin$ on June 05, 2016, 18:09
what if founder can allow and not allow leaders to buy vehicle?
what if he donate 500k to the club? and bought a swat tank. its so unfair to the club (specially with base). why? coz swat tank coasted 10 mil and u still need to renew your base. so the founder can allow or not allow the leaders to buy vehicles.
For Example:
Founder:Gen.McMuffin$ --> Leader:Gen.McDonuts( Allow to buy vehicles/dont allow to buy vehicle) (for clubs only.)
so that this situation wont ever happen. AGAIN. : http://www.forum.convoytrucking.net/index.php?topic=54196.0
Using this system you could set leaders to not be able to purchase club vehicles (so only founder can buy them), or allow them to request to purchase a vehicle (so the founder can approve each request manually to stop anyone buying SWAT tanks (especially since they are a massive waste of money)).

Since the system requires someone to have full trust (like administrators on forum) the founder can do absolutely anything though, nothing can be done about that - it is the founder's club after all.

To make the SWAT tank situation fair, you could say "you must donate $x before you can buy vehicle for $x" - this would be a good club rule however the player may as well buy the vehicle themselves and use /sharevehicle.
/unsharevehicle?

AviatorAysar

Quote from: PreHistoricPiggy on June 05, 2016, 19:21
Quote from: Joshy on June 05, 2016, 18:29
Quote from: Gen.McMuffin$ on June 05, 2016, 18:09
what if founder can allow and not allow leaders to buy vehicle?
what if he donate 500k to the club? and bought a swat tank. its so unfair to the club (specially with base). why? coz swat tank coasted 10 mil and u still need to renew your base. so the founder can allow or not allow the leaders to buy vehicles.
For Example:
Founder:Gen.McMuffin$ --> Leader:Gen.McDonuts( Allow to buy vehicles/dont allow to buy vehicle) (for clubs only.)
so that this situation wont ever happen. AGAIN. : http://www.forum.convoytrucking.net/index.php?topic=54196.0
Using this system you could set leaders to not be able to purchase club vehicles (so only founder can buy them), or allow them to request to purchase a vehicle (so the founder can approve each request manually to stop anyone buying SWAT tanks (especially since they are a massive waste of money)).

Since the system requires someone to have full trust (like administrators on forum) the founder can do absolutely anything though, nothing can be done about that - it is the founder's club after all.

To make the SWAT tank situation fair, you could say "you must donate $x before you can buy vehicle for $x" - this would be a good club rule however the player may as well buy the vehicle themselves and use /sharevehicle.
/unsharevehicle?


Muffin sharing and unsharing have nothing to do with scaming, because he will be wastin his own funds!! he share it, club pays nothing, he unshare it club pays nothing..

Vehicle bought from club funds cant be unshared :)
LAST SEEN
TOTAL TIME ON SERVER
SCORE
TRUCK LOADS
CONVOY SCORE
ACHIEVEMENTS
ARTIC
DUMPER
VAN
FUEL
CEMENT
ARRESTS
CARS STOLEN
COACH
PLANE
HELICOPTER
TOW TRUCK
LIMO
TRASH
ARMORED VAN
BURGLARIES
ARMORED VANS STOLEN
MISSIONS FAILED
OVERLOADED
FINES PAID
TOTAL SPENT ON FUEL
INTEREST EARNED
DISTANCE TRAVELLED
TIME IN JAIL
LAST MISSION

Xero

I like the vehicle management idea, make it so if someone wants to buy a vehicle they have to be approved by founder and/or leader so they know it's being purchased for a reason given by the member making the purchase and not just a club fund waster.

AviatorAysar

LAST SEEN
TOTAL TIME ON SERVER
SCORE
TRUCK LOADS
CONVOY SCORE
ACHIEVEMENTS
ARTIC
DUMPER
VAN
FUEL
CEMENT
ARRESTS
CARS STOLEN
COACH
PLANE
HELICOPTER
TOW TRUCK
LIMO
TRASH
ARMORED VAN
BURGLARIES
ARMORED VANS STOLEN
MISSIONS FAILED
OVERLOADED
FINES PAID
TOTAL SPENT ON FUEL
INTEREST EARNED
DISTANCE TRAVELLED
TIME IN JAIL
LAST MISSION

ako

+1 for all.

something new would be good too as well as regulations in a club. Can't think of much as Joshy have brainstormed about this  :happycmas:

Quote" CarlJohnson : When tab is full with orange player names "


Deff

I like the idea of completely removing the hard-coded club ranks.
This might also give more innovative ideas for names of club ranks and more innovative clubs.

+1



Ethan


Mr.majmun

That's a good idea. I like it, we need something new  :like:
LAST SEEN
TOTAL TIME ON SERVER
SCORE
TRUCK LOADS
CONVOY SCORE
ACHIEVEMENTS
ARTIC
DUMPER
VAN
FUEL
CEMENT
ARRESTS
CARS STOLEN
COACH
PLANE
HELICOPTER
TOW TRUCK
LIMO
TRASH
ARMORED VAN
BURGLARIES
ARMORED VANS STOLEN
MISSIONS FAILED
OVERLOADED
FINES PAID
TOTAL SPENT ON FUEL
INTEREST EARNED
DISTANCE TRAVELLED
TIME IN JAIL
LAST MISSION
Generated by ASP.NET Core on Linux using the Convoy Trucking API. Updates every 5 minutes. See the original SVG image.

Quick Reply

Warning: this topic has not been posted in for at least 30 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it has been approved by a moderator.

Name:
Email:
Verification:
Please leave this box empty:
Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:
What is the server name?:
What is 7 + 4?:
Shortcuts: ALT+S post or ALT+P preview