Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable apps to be team aware #3

Open
paltman opened this issue Oct 28, 2014 · 0 comments
Open

Enable apps to be team aware #3

paltman opened this issue Oct 28, 2014 · 0 comments

Comments

@paltman
Copy link
Contributor

paltman commented Oct 28, 2014

On Team Aware Apps

With pinax-teams giving us a beachhead for team-based web applications, it is
important for us to consider how to make our Django apps easily used within this
team context. How do we make them team aware without sacrificing the loose
coupling that makes Django apps so great?

I have some ideas specifically around the integration of pinax-wiki with teams
that I'd like to explore and propose.

App Level Roles

It's easy to conflate team management roles with site-level and app-level roles.
To be clear, the roles on the Membership model in pinax-teams is solely for
the management of team membership.

To make pinax-teams extra powerful would be to be extensible so that if team
aware apps were in INSTALLED_APPS, extra interface would appear on the team
management page that allowed a Manager of the team to set the roles for the
different apps that are installed.

Groups

We could have the following models added to pinax-teams:

Group:
    label

GroupRole:
    group
    label

GroupMembership:
    group
    team
    user
    role

In the initialization code for pinax-teams we can loop over the INSTALLED_APPS
and import any groups.py module and execute an install() method if it exists.
This will basically do get_or_create's on Group and GroupRole to install
the data that this app will need.

The presence of these groups and inform the UI on the team management pages,
perhaps tabs for each Group found, with the ability to add/edit/delete members
from the different groups.

Hooksets

In each app that is going to be made team aware and is providing the contracted
groups.py module and install() method, a default hookset will be defined so
that default interpretation of security could be provided but also so that one
could easily override this at the site level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants