diff -r e96e50ae6352 -r 11e0fdc1a58c iro/model/offer.py --- a/iro/model/offer.py Mon Feb 13 17:16:14 2012 +0100 +++ b/iro/model/offer.py Mon Feb 13 17:16:54 2012 +0100 @@ -1,3 +1,4 @@ +from .dbdefer import dbdefer from ..config import config def getPossibleOffers(recipient, os): @@ -6,6 +7,21 @@ ret.append(offers[offer]) return ret +@dbdefer +def extendProvider(session, user, typ, providers): + user = session.merge(user) + ret = [] + for p in providers: + if p in offers.keys() and p not in ret and user.has_right(typ, offer_name = p): + ret.append(p) + elif user.has_right(typ,provider=p): + rs = [route for route in offers[p].routes if route not in ret] + for r in rs: + n = user.has_right(typ, provider=p, route=r) + if n: + ret.append(n) + return ret + def loadOffers(): pass