diff --git a/master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Hosting%20Subscription.xml b/master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Hosting%20Subscription.xml
index 74ee029cd2875500350a3f15ec2fe452cdc60d10..e3d9414961e6ebde615bc5088087327266e90604 100644
--- a/master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Hosting%20Subscription.xml
+++ b/master/bt5/slapos_erp5/PortalTypeRolesTemplateItem/Hosting%20Subscription.xml
@@ -13,9 +13,9 @@
   </role>
   <role id='Assignee'>
    <property id='title'>Organisation Member</property>
-   <property id='base_category_script'>Item_getSecurityCategoryFromMovementDestinationSection</property>
-   <multi_property id='categories'>local_role_group/project</multi_property>
-   <multi_property id='base_category'>destination_section</multi_property>
+   <property id='base_category_script'>Item_getSecurityCategoryFromMovementDestination</property>
+   <multi_property id='categories'>local_role_group/organisation</multi_property>
+   <multi_property id='base_category'>destination</multi_property>
   </role>
   <role id='Assignee'>
    <property id='title'>Project Member</property>
diff --git a/master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_core/Item_getSecurityCategoryFromMovementDestination.py b/master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_core/Item_getSecurityCategoryFromMovementDestination.py
new file mode 100644
index 0000000000000000000000000000000000000000..b78af01f9746773c9ca38a6133b73b321cab28bf
--- /dev/null
+++ b/master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_core/Item_getSecurityCategoryFromMovementDestination.py
@@ -0,0 +1,39 @@
+"""
+This script returns a list of dictionaries which represent
+the security groups which a person is member of. It extracts
+the categories from the current content. It is useful in the
+following cases:
+
+- calculate a security group based on a given
+  category of the current object (ex. group). This
+  is used for example in ERP5 DMS to calculate
+  document security.
+
+- assign local roles to a document based on
+  the person which the object related to through
+  a given base category (ex. destination). This
+  is used for example in ERP5 Project to calculate
+  Task / Task Report security.
+
+The parameters are
+
+  base_category_list -- list of category values we need to retrieve
+  user_name          -- string obtained from getSecurityManager().getUser().getId()
+  object             -- object which we want to assign roles to
+  portal_type        -- portal type of object
+
+NOTE: for now, this script requires proxy manager
+"""
+
+category_list = []
+
+if obj is None:
+  return []
+
+# Object on this case can be Hosting Subscription, Computer, or Computer Network
+organisation = obj.Item_getCurrentSiteValue()
+if organisation is not None and \
+  organisation.getPortalType() == "Organisation":
+  category_list.append({'destination': [organisation.getRelativeUrl()]})
+
+return category_list
diff --git a/master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_core/Item_getSecurityCategoryFromMovementDestination.xml b/master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_core/Item_getSecurityCategoryFromMovementDestination.xml
new file mode 100644
index 0000000000000000000000000000000000000000..18e0d5fe973e2d9bb2a5cbfd8fff7d8c3c1ed9fe
--- /dev/null
+++ b/master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_core/Item_getSecurityCategoryFromMovementDestination.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>base_category_list, user_name, obj, portal_type</string> </value>
+        </item>
+        <item>
+            <key> <string>_proxy_roles</string> </key>
+            <value>
+              <tuple>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Item_getSecurityCategoryFromMovementDestination</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>