diff --git a/auth.py b/auth.py index 15abc68..1a525a5 100644 --- a/auth.py +++ b/auth.py @@ -282,6 +282,16 @@ class LDAPUserProxy(object): # Fail-safe. return True + @cached_property + def is_staff(self): + url = 'https://capacifier.hackerspace.pl/staff/{}' + try: + r = requests.get(url.format(self.username)) + return 'YES' in r.text + except Exception as e: + logging.error("When getting data from Capacifier: {}".format(e)) + return False + def get_id(self): return self.username @@ -358,8 +368,12 @@ def api_profile(): @oauth.require_oauth('profile:read') def api_userinfo(): user = LDAPUserProxy(flask.request.oauth.user) + groups = [] + if user.is_staff: + groups.append('staff') return flask.jsonify(sub=user.username, name=user.gecos, email=user.email, - preferred_username=user.username, nickname=user.username) + preferred_username=user.username, nickname=user.username, + user_name=user.username, user_id=user.username, groups=groups) if __name__ == '__main__':