@@ -298,14 +298,27 @@ def check_tier_limit(user, feature: str) -> tuple[bool, dict]:
298298
299299 # Count current usage
300300 if feature == 'bills' :
301- # Count active (non-archived) bills across all user's databases
301+ # Count active (non-archived) bills across user's databases
302302 from models import Bill
303- used = Bill .query .join (Database ).filter (
304- Database .id .in_ ([db .id for db in user .accessible_databases ]),
305- Bill .archived == False
306- ).count ()
303+ if is_saas ():
304+ # In SaaS mode, count bills in databases owned by this user
305+ used = Bill .query .join (Database ).filter (
306+ Database .owner_id == user .id ,
307+ Bill .archived == False
308+ ).count ()
309+ else :
310+ # In self-hosted mode, count bills in accessible databases
311+ used = Bill .query .join (Database ).filter (
312+ Database .id .in_ ([db .id for db in user .accessible_databases ]),
313+ Bill .archived == False
314+ ).count ()
307315 elif feature == 'bill_groups' :
308- used = len (user .accessible_databases )
316+ # In SaaS mode, count databases owned by this user
317+ # In self-hosted mode, count databases accessible to this user
318+ if is_saas ():
319+ used = Database .query .filter_by (owner_id = user .id ).count ()
320+ else :
321+ used = len (user .accessible_databases )
309322 elif feature == 'users' :
310323 # For now, just return limit (user management is admin-level)
311324 used = 1
@@ -765,7 +778,7 @@ def process_auto_payments():
765778
766779@api_bp .route ('/api/version' , methods = ['GET' ])
767780def get_version ():
768- return jsonify ({'version' : '3.2.9 ' , 'license' : "O'Saasy" , 'license_url' : 'https://osaasy.dev/' , 'features' : ['enhanced_frequencies' , 'auto_payments' , 'postgresql_saas' , 'row_tenancy' ]})
781+ return jsonify ({'version' : '3.2.10 ' , 'license' : "O'Saasy" , 'license_url' : 'https://osaasy.dev/' , 'features' : ['enhanced_frequencies' , 'auto_payments' , 'postgresql_saas' , 'row_tenancy' ]})
769782
770783@api_bp .route ('/ping' )
771784def ping (): return jsonify ({'status' : 'ok' })
@@ -1926,7 +1939,7 @@ def jwt_get_version():
19261939 return jsonify ({
19271940 'success' : True ,
19281941 'data' : {
1929- 'version' : '3.2.9 ' ,
1942+ 'version' : '3.2.10 ' ,
19301943 'api_version' : 'v2' ,
19311944 'license' : "O'Saasy" ,
19321945 'license_url' : 'https://osaasy.dev/' ,
0 commit comments