eveseat / seat

🌀✳️ SeAT: A Simple, EVE Online API Tool and Corporation Manager
https://eveseat.github.io/docs/
GNU General Public License v2.0
425 stars 143 forks source link

Alt corp directors get director privileges via our ESI tokens. #823

Open Dyn0mike opened 2 years ago

Dyn0mike commented 2 years ago

Member A has a toon in the main corp, and a toon in the alt corp. Niether toons have roles. Member B has a toon in the main corp, and a director toon in the same alt corp. Member B has full ESI access to Member A's alt, despite Member A not giving the alt corp their ESI tokens.

This is not a huge issue, we are not putting alts into random corps we do not trust. It is certainly an unexpected behavior a member would not expect.

warlof commented 2 years ago

The only reason I see here is one of the following :

Can you explain your roles setup?

Dyn0mike commented 2 years ago

The out of box configuration for seat has directors given permission to see Non-public data of toons on seat for the corporation they are a director of.

Nither need to be admin, seat does not need any roles or squads set up.

I have two members in the main corp, both are just line members with zeros titles or roles in game or on seat.

They both decide to do an activity that requires being in an alt corp.

Member B makes the corp and invites member A's alt. As per requirements all members have all toons loaded on our seat.

Member B can now see member A's alt on seat and all private data we hold for it.

Member B can not see member A's main on seat or any private data we hold for it.

This is unexpected because Member A did not give the alt corp their ESI token.

veteranmina commented 2 years ago

I have a similar instance of this as well. With the current ACL system it is operating as it should as below:

Member A - Corp A (No roles) Member B - Corp A (No Roles)

Member A - Corp B (No Roles) Member B - Corp A (CEO/Director - ACL grants view of members)

Because Member B - Corp A has the given roles, SeAT ACL grants access to Corp B member info. This would be the same if Member B - Corp A has CEO/Director roles it would then grant access to Corp A member info.

warlof commented 2 years ago

Be sure to consider those three levels :

In you upper comment, in every case, I got the feeling characters/users bareer does not exist, which hide a bit of explanation - and this wall is critical to either reproduce issues or explain business logic. What are you calling "Member" ? is it an User or a Character ?

Current ACL are doing the following with bellow data sample :

User 1 - Character A - Corp γ User 1 - Character B - Corp δ

User 2 - Character E - Corp δ User 2 - Character R - Corp γ

In game, character E is Director (or CEO) from corporation δ.

The following access table results of those :

User Character A Character B Character E Character R Corporation δ Corporation γ
1 Can view (owner) Can view (owner) No access No access No access No access
2 No access Can view (inherit from δ) Can view (owner) Can view (owner) Can view (inherit from δ) No access
veteranmina commented 2 years ago

From what I'm gathering, and in my case member = single toon.

Your chart explains it perfectly as to what is of concern, but noted the ACL is operating correctly at this point. The concern here and previously in other issues is that the ACL automatically grants view to all toons in a corp if you own a toon that has CEO/Director role.

I've had a few on my SeAT instance question this as well and have explained it to them but are concerned/questioning if the ACL be changed to not automatically grant corp toon access or to change it to CEO only, making director role manageable by SeAT roles/squads by said CEO/SeAT maintainer.

Dyn0mike commented 2 years ago

Perfect table and it all works as SeAT devs intended.

The issue is User 1 never gave corp δ their ESI keys. There is no way to stop corp δ from harvesting intel with the exception of kicking Character B or Character E off our SeAT instance.

veteranmina commented 2 years ago

From what I'm gathering your SeAT instance is shared between multiple corporations that are not tied in relation i.e. alliances?

Dyn0mike commented 2 years ago

Not shared, only our main corp and its director should see player private data.

As with most SeAT installed it is public facing and anyone can load their ESI token to it. This is for recruitment, shared coms, and a public discord.

As with every corp our main members have alts in many corps and alliances, be it NPDS corps, rental corps, indy, or for combined military operations.