Let’s read the Use Case 3,Boot from table:
Use Case 3: Moderator can boot from the table
Moderator can boot from the table( permanently of just for this session ) any participant.
If permanently,the participant with this name can not join anymore
The following code is written,for adding a participant to be booted from table
public void UseCase3RightPath() { var ModeratorName = "ignat andrei"; string newParticipantName = "new participant"; var roundName = "UseCase2 - Join Table"; var table = TableFactory.CreateTable(ModeratorName); table.AddParticipant(newParticipantName); table.BootParticipant(table.ModeratorName,newParticipantName); }
And after that? How do I recognize that is a Moderator from a participant?
I must have a layer that recognize that,either from name,either from an ID (because I said that the software is to be put on AD/LDAP,then the name will be unique). However,if I wrote code like that:
table.BootParticipant(ModeratorName,newParticipantName);
Then any part of the software that can find the moderator name could boot any participant – even in the participant the code can be written like this:
table.BootParticipant(table.ModeratorName,newParticipantName);
I need to create a security layer to recognize moderator from participant and,when first adding a moderator,unique identify this moderator over the whole table.
So on the moderator the code will be:
moderator.BootParticipant(table.id,newParticipantName);
So I need now a User class –and a Moderator class – with a function that says: BootParticipant.
The problem is that a regular user is promoted as Moderator in this instruction
var table = TableFactory.CreateTable(ModeratorName);
How this is translated into code ? I am thinking and I will come with a solution next time.
Leave a Reply