X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FRoles.py;h=fcc05f4bd609edf609d01d7047d8b53ef46ff84b;hb=19d4a01ccf66af9e00914351b3eacd5fc880f988;hp=28fae356a1fd02bb50bdb681ee73d5d1dee3c8c7;hpb=f7ce7ce813d4c44502629820a3583f32a99a98f7;p=plcapi.git diff --git a/PLC/Roles.py b/PLC/Roles.py index 28fae35..fcc05f4 100644 --- a/PLC/Roles.py +++ b/PLC/Roles.py @@ -4,9 +4,6 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id$ -# $URL$ -# from types import StringTypes from PLC.Faults import * @@ -22,7 +19,7 @@ class Role(Row): table_name = 'roles' primary_key = 'role_id' - join_tables = ['person_role', ('tag_types', 'min_role_id')] + join_tables = ['person_role', 'tag_type_role' ] fields = { 'role_id': Parameter(int, "Role identifier"), 'name': Parameter(str, "Role", max = 100), @@ -69,5 +66,13 @@ class Roles(Table): elif isinstance(role_filter, dict): role_filter = Filter(Role.fields, role_filter) sql += " AND (%s) %s" % role_filter.sql(api, "AND") + elif isinstance(role_filter, (int, long)): + role_filter = Filter(Role.fields, {'role_id': role_filter}) + sql += " AND (%s) %s" % role_filter.sql(api, "AND") + elif isinstance(role_filter, StringTypes): + role_filter = Filter(Role.fields, {'name': role_filter}) + sql += " AND (%s) %s" % role_filter.sql(api, "AND") + else: + raise PLCInvalidArgument, "Wrong role filter %r"%role_filter self.selectall(sql)