23 lines
601 B
Python
23 lines
601 B
Python
import uuid
|
|
from soter.models.auth import User
|
|
|
|
|
|
def rolefinder(user_id, request):
|
|
if request is not None and 'perms' in request.session:
|
|
perms = request.session['perms']
|
|
else:
|
|
perms = []
|
|
user = User.by_id(user_id)
|
|
for item in user.roles:
|
|
for perm in item.permissions:
|
|
perms.append(perm.name)
|
|
perms = f7(perms)
|
|
if request is not None:
|
|
request.session['perms'] = perms
|
|
return perms
|
|
|
|
|
|
def f7(seq):
|
|
seen = set()
|
|
seen_add = seen.add
|
|
return [x for x in seq if x not in seen and not seen_add(x)] |