Skip to main content

An application for managing your organization's authorities (departments, directorates etc)

Project description

An application for managing your organization’s authorities (departments, directorates etc). This is an app built to mainly cover the needs of the organization I work for (a public sector organization in Greece); however feel free to use it if you like it.

Rationale

This more or less is a better auth.Group to help you building the hierarchy of an organization. Why not just use auth.Group? Well, unfortunately, auth.Group is missing various needed things like:

  • category: You may have departments, teams, directoratates

  • active: Some authorities are de-activated; they should not be deleted though

  • parent: You’ll need to have a proper authority hierarchy

Also, for me the django auth.Group entity feels more like an application/system-related concept (vs the HR Authority provided in this add-on). I.e you can have a django auth group of “Administrators” or “Advanced users” or “Moderators” etc; these people may belong to various directorates; not all people in the “IT department” need to be Administrators of the application.

Now, there are more things that may be useful for an authority/HR system, like

  • manager: Who manages the authority

  • user-job: The users of an authority may have different jobs like manager (this is complementary to the first one), teller, client development etc

I haven’t added these fields yet because I don’t need them for my projects. If the need arises I’ll add them.

Installation

Install it with pip install django-authorities, or if you want to use the latest version on github, try pip install git+https://github.com/spapas/django-authorities.

After it is installed, put authorities in your INSTALLED_APPS setting.

Simple usage

This is a very simple app with two models and a couple of views for editing these.

After you’ve installed it, you can visit the django admin to edit authorities.Authority and authorities.AuthorityKind. AuthorityKind only has a name (so it can be directorate, department team etc) while Authority has kind (AuthorityKind), is_active (boolean), parent (an optional FK to another Authority to create hierarchies) and users (an M2M relation with settings.AUTH_USER_MODEL; each user can belong to multiple authorities and each authority will have more than one user).

Also I’ve included a couple of non-admin views which you can use as they are or modify them to fit your needs. Either inherit from or and them in your own urls.py as they are or include the whole authorities.urls. The templates of these views inherit from a base.html which needs to provide a content and a {% page_title %} block. Thus your base.html template could be like this:

<html>
    <body>
        <h1>{% block page_title %}{% endblock %}</h1>
        {% block content %}{% endblock %}
    </body>
</html>

These views are:

  • authorities.views.AuthorityListView

  • authorities.views.AuthorityCreateView

  • authorities.views.AuthorityUpdateView

  • authorities.views.AuthorityDetailView

  • authorities.views.AuthorityEditUsersView

The names are self-explanatory; notice that the Create and Update views do not allow you to edit the users of that authority; you must use the AuthorityEditUsersView for that.

To improve security a bit I’m checking that the user can add an authority in the urls.py before allowing access to these views.

To use the provided template tag, you need to {% load authorities_tags %} and then you can do something like this in your template:

{% if user.is_authenticated %}
    {% user_authorities as my_authorities %}
    {% if my_authorities %}
        My authorities are:
        <ul>
        {% for a in my_authorities  %}
            <li>{{ a.name }}</li>
        {% endfor %}
        </ul>
    {% endif %}
{% endif %}

v.0.2.1

  • Add a missing migration

v.0.2.0

  • Add greek translations

  • Improve standard views a bit

  • Add some security to the builtin views

v.0.1.2

  • Add template tags to get current user authorities

  • Improve README

v.0.1.0

  • Initial version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-authorities-0.2.1.tar.gz (9.7 kB view details)

Uploaded Source

File details

Details for the file django-authorities-0.2.1.tar.gz.

File metadata

  • Download URL: django-authorities-0.2.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1

File hashes

Hashes for django-authorities-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b67e2a523ca4985a321b2c56ecae806d364879d53130ca95aabd756164850bcd
MD5 4d011adbb041a97078b9e3b274f33ec3
BLAKE2b-256 8572cb2153a2c6f3727df7eff18a0d7f34a0e27c10072811f32eb0812bfb40cf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page