src/pyams_content/profile/admin.py
changeset 558 d9c6b1d7fefa
parent 501 3407e6940f6a
child 966 a3d8d83fb6f0
--- a/src/pyams_content/profile/admin.py	Fri May 25 08:05:13 2018 +0200
+++ b/src/pyams_content/profile/admin.py	Fri May 25 15:48:59 2018 +0200
@@ -19,20 +19,17 @@
 from pyams_content.profile.interfaces import IAdminProfile, ADMIN_PROFILE_KEY
 from pyams_security.interfaces import IPrincipalInfo
 from pyams_utils.interfaces import PUBLIC_PERMISSION
-from zope.annotation.interfaces import IAnnotations, IAttributeAnnotatable
 
 # import packages
 from persistent import Persistent
-from pyams_utils.adapter import adapter_config
+from pyams_utils.adapter import adapter_config, get_annotation_adapter
 from pyams_utils.request import check_request, query_request
 from pyramid.security import Allow, ALL_PERMISSIONS, Everyone
-from pyramid.threadlocal import get_current_registry
-from zope.lifecycleevent import ObjectCreatedEvent
 from zope.interface import implementer, Interface
 from zope.schema.fieldproperty import FieldProperty
 
 
-@implementer(IAdminProfile, IAttributeAnnotatable)
+@implementer(IAdminProfile)
 class AdminProfile(Persistent):
     """Admin profile persistent class"""
 
@@ -57,9 +54,4 @@
 @adapter_config(context=IPrincipalInfo, provides=IAdminProfile)
 def principal_admin_profile_factory(principal):
     """Principal admin profile factory adapter"""
-    annotations = IAnnotations(principal)
-    profile = annotations.get(ADMIN_PROFILE_KEY)
-    if profile is None:
-        profile = annotations[ADMIN_PROFILE_KEY] = AdminProfile()
-        get_current_registry().notify(ObjectCreatedEvent(profile))
-    return profile
+    return get_annotation_adapter(principal, ADMIN_PROFILE_KEY, AdminProfile)