progval / Limnoria

A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins.
https://docs.limnoria.net/
Other
623 stars 173 forks source link

User groups / roles #471

Open progval opened 11 years ago

progval commented 11 years ago

This is sometimes useful to give a bunch of users the same capabilities. What about creating user groups to assign some capabilities to multiple users at once?

We could also create pseudo-groups, like people with +o mode (this has been asked often to give capabilities to people with +o), ... Also, assigning hostmasks to groups/roles (eg. !@projectname/* to use freenode cloaks)

tz18 commented 10 years ago

I also think this would be a great thing to have.

Mikaela commented 10 years ago

This would be nice to have, I have 20+ users from mostly two channels and they are at IRCnet, so no services.

How would this work? More commands to the User plugin or a new Group plugin to manage them? I think I prefer to user, but how would it work with it? Make user list show groups and have default groups \@all where everyone belongs to and \@ungrouped who are not in any other group than \@all.

And how do you add groups and where? data/groups.conf sounds like a good place, but data/users.conf probably must at least mention the existense of groups. Adding groups, would it be like user group add <group>[ <username>] where if <username is not given, the group is created?

And giving capabilities to the group? Would it need a new command or how would the groups be named? I suggested \@ prefix before as config list has them, but Atheme GroupServ uses ! so would it be admin capability add \@somechannelgroup #channel,op?

PS: ignore the \'s, I am trying to override @-mentioning, but failing.

progval commented 10 years ago

Why create group, instead of just assuming every name is a valid group, as we do for capabilities?

On 03/08/2014 15:23, Mikaela Suomalainen wrote:

This would be nice to have, I have 20+ users from mostly two channels and they are at IRCnet, so no services.

How would this work? More commands to the User plugin or a new Group plugin to manage them? I think I prefer to user, but how would it work with it? Make user list show groups and have default groups \@all where everyone belongs to and \@ungrouped who are not in any other group than \@all.

And how do you add groups and where? data/groups.conf sounds like a good place, but data/users.conf probably must at least mention the existense of groups. Adding groups, would it be like user group add <group>[ <username>] where if <username is not given, the group is created?

And giving capabilities to the group? Would it need a new command or how would the groups be named? I suggested \@ prefix before as config list has them, but Atheme GroupServ uses ! so would it be admin capability add \@somechannelgroup #channel,op?

PS: ignore the \'s, I am trying to override @-mentioning, but failing.


Reply to this email directly or view it on GitHub: https://github.com/ProgVal/Limnoria/issues/471#issuecomment-50990356

Mikaela commented 10 years ago

So group = user?

progval commented 10 years ago

No, why?

On 03/08/2014 19:18, Mikaela Suomalainen wrote:

So group = user?


Reply to this email directly or view it on GitHub: https://github.com/ProgVal/Limnoria/issues/471#issuecomment-50996414

Mikaela commented 10 years ago

Why create group, instead of just assuming every name is a valid group,

I don't understand this.

as we do for capabilities?

Or do you mean that capabilities become groups? I don't understand.

progval commented 10 years ago

One does not create capabilities, there is not list of capabilities. Just names. I mean to do the same thing for groups: one does not create a group, they all exist by default, and you just assign users to groups, and capabilities to groups.

Hmm… by writting “assign […] capabilities to groups”, I realize that we would have to create a database for groups to store them…

On 03/08/2014 19:47, Mikaela Suomalainen wrote:

Why create group, instead of just assuming every name is a valid group, I don't understand this.

as we do for capabilities? Or do you mean that capabilities become groups? I don't understand.


Reply to this email directly or view it on GitHub: https://github.com/ProgVal/Limnoria/issues/471#issuecomment-50997373

Mikaela commented 10 years ago

How would you assing users to group and capabilities to groups? And that also needs some way to remove users and capabilities from groups.

Mikaela commented 9 years ago

Use case: capabilities.default False.

More information in logs of #limnoria on 2014-11-13 (UTC+2), does anyone of involved people want to say anything here?

jaybe-jekyll commented 9 years ago

I would find Capabilities Groups helpful.

My use case is to begin configuration with deny by default, disallowing any access to commands or responses to/from public/everyone.

For example, Public/Everyone would (only) possess capabilities as set upon the Everyone Group.