diff --git a/migration/0.4.0_Any.py b/migration/0.4.0_Any.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ee82b460998ac393f5dbbe324fe12bad2f9bc37_bWlncmF0aW9uLzAuNC4wX0FueS5weQ==
--- /dev/null
+++ b/migration/0.4.0_Any.py
@@ -0,0 +1,1 @@
+sync_schema_props_perms('spent_for')
diff --git a/schema.py b/schema.py
index bd4d1dc13ff08c7c8939261beb9df24e3cbe9210_c2NoZW1hLnB5..1ee82b460998ac393f5dbbe324fe12bad2f9bc37_c2NoZW1hLnB5 100644
--- a/schema.py
+++ b/schema.py
@@ -1,3 +1,4 @@
 # template's specific schema
-from yams.buildobjs import SubjectRelation
+from yams.buildobjs import RelationDefinition
+from cubicweb.schema import RRQLExpression
 
@@ -3,5 +4,10 @@
 
-from cubes.expense.schema import Expense
-
-Expense.add_relation(SubjectRelation('Workcase', cardinality='?*'),
-                     name='spent_for')
+class spent_for(RelationDefinition):
+    subject = 'Expense'
+    object = 'Workcase'
+    cardinality = '?*'
+    __permissions__ = {
+        'read' : ('managers', 'users'),
+        'add': ('managers', RRQLExpression('S in_state ST, NOT ST name "accepted"')),
+        'delete': ('managers', RRQLExpression('S in_state ST, NOT ST name "accepted"')),
+        }