forked from enviPath/enviPy
secret packs viz
This commit is contained in:
@ -131,8 +131,9 @@
|
|||||||
id="package-data-pool"
|
id="package-data-pool"
|
||||||
name="package-data-pool"
|
name="package-data-pool"
|
||||||
class="select select-bordered w-full"
|
class="select select-bordered w-full"
|
||||||
|
:required="isSecret"
|
||||||
>
|
>
|
||||||
<option value="" disabled selected>Select Data Pool</option>
|
<option value="" disabled>Select Data Pool</option>
|
||||||
{% for obj in meta.secret_groups %}
|
{% for obj in meta.secret_groups %}
|
||||||
<option value="{{ obj.url }}">{{ obj.name|safe }}</option>
|
<option value="{{ obj.url }}">{{ obj.name|safe }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@ -83,6 +83,7 @@ def entra_callback(request):
|
|||||||
# Get implementing class
|
# Get implementing class
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
||||||
|
registered = False
|
||||||
if User.objects.filter(uuid=user_oid).exists():
|
if User.objects.filter(uuid=user_oid).exists():
|
||||||
u = User.objects.get(uuid=user_oid)
|
u = User.objects.get(uuid=user_oid)
|
||||||
|
|
||||||
@ -93,6 +94,7 @@ def entra_callback(request):
|
|||||||
else:
|
else:
|
||||||
auth_log.info(f"Registering {user_name} with OID {user_oid}")
|
auth_log.info(f"Registering {user_name} with OID {user_oid}")
|
||||||
u = UserManager.create_user(user_name, user_email, None, uuid=user_oid, is_active=True)
|
u = UserManager.create_user(user_name, user_email, None, uuid=user_oid, is_active=True)
|
||||||
|
registered = True
|
||||||
|
|
||||||
auth_log.info(f"User {user_name} {'(admin) ' if u.is_superuser else ''}with OID {user_oid} successfully logged in as {u.username} from {get_remote_address(request)}")
|
auth_log.info(f"User {user_name} {'(admin) ' if u.is_superuser else ''}with OID {user_oid} successfully logged in as {u.username} from {get_remote_address(request)}")
|
||||||
login(request, u)
|
login(request, u)
|
||||||
@ -132,6 +134,17 @@ def entra_callback(request):
|
|||||||
g.user_member.remove(u)
|
g.user_member.remove(u)
|
||||||
auth_log.info(f"Login Group Sync: Removing {u.username} from Group {g.name} ({ uuid })")
|
auth_log.info(f"Login Group Sync: Removing {u.username} from Group {g.name} ({ uuid })")
|
||||||
|
|
||||||
|
if registered:
|
||||||
|
# #72 make package secret if user is part of a secret group
|
||||||
|
for id, name in s.ENTRA_SECRET_GROUPS.items():
|
||||||
|
group = Group.objects.get(uuid=id)
|
||||||
|
if group.user_member.contains(u):
|
||||||
|
# User is eligible for secrete
|
||||||
|
pack = u.default_package
|
||||||
|
u.data_pool = group
|
||||||
|
u.classification_level = u.Classification.SECRET
|
||||||
|
u.save()
|
||||||
|
|
||||||
# EDIT END
|
# EDIT END
|
||||||
|
|
||||||
return redirect(s.SERVER_URL) # Handle errors
|
return redirect(s.SERVER_URL) # Handle errors
|
||||||
|
|||||||
@ -49,7 +49,7 @@ from .views import get_remote_address
|
|||||||
|
|
||||||
Package = s.GET_PACKAGE_MODEL()
|
Package = s.GET_PACKAGE_MODEL()
|
||||||
|
|
||||||
auth_log = logging.get_logger("auth")
|
auth_log = logging.getLogger("auth")
|
||||||
|
|
||||||
|
|
||||||
def get_cached_jwks(tenant_id: str, force=False) -> Dict:
|
def get_cached_jwks(tenant_id: str, force=False) -> Dict:
|
||||||
|
|||||||
@ -423,7 +423,7 @@ def get_base_context(request, for_user=None) -> Dict[str, Any]:
|
|||||||
"external_databases": ExternalDatabase.get_databases(),
|
"external_databases": ExternalDatabase.get_databases(),
|
||||||
"site_id": s.MATOMO_SITE_ID,
|
"site_id": s.MATOMO_SITE_ID,
|
||||||
# EDIT START
|
# EDIT START
|
||||||
"secret_groups": Group.objects.filter(secret=True),
|
"secret_groups": Group.objects.filter(secret=True, user_member=current_user),
|
||||||
# EDIT END
|
# EDIT END
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -105,6 +105,11 @@
|
|||||||
<img src="{% static 'images/restricted_mid.png' %}" width="200">
|
<img src="{% static 'images/restricted_mid.png' %}" width="200">
|
||||||
{% elif meta.url_contains_package and meta.current_package.get_classification_level_display == "Secret" %}
|
{% elif meta.url_contains_package and meta.current_package.get_classification_level_display == "Secret" %}
|
||||||
<img src="{% static 'images/secret_mid.png' %}" width="120">
|
<img src="{% static 'images/secret_mid.png' %}" width="120">
|
||||||
|
{% elif not meta.url_contains_package and meta.user.default_package.get_classification_level_display == "Restricted" %}
|
||||||
|
<img src="{% static 'images/restricted_mid.png' %}" width="200">
|
||||||
|
{% elif not meta.url_contains_package and meta.user.default_package.get_classification_level_display == "Secret" %}
|
||||||
|
<img src="{% static 'images/secret_mid.png' %}" width="200">
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if not public_mode %}
|
{% if not public_mode %}
|
||||||
<a id="search-trigger" role="button" class="cursor-pointer">
|
<a id="search-trigger" role="button" class="cursor-pointer">
|
||||||
|
|||||||
Reference in New Issue
Block a user