def test_raw_acls__207(self): data = helpers.make_object(self.sess,"/".join((self.coll_path,"test_obj"))) eg = eu = fg = fu = None try: eg = self.sess.user_groups.create ('egrp') eu = self.sess.users.create ('edith','rodsuser') eg.addmember(eu.name,eu.zone) fg = self.sess.user_groups.create ('fgrp') fu = self.sess.users.create ('frank','rodsuser') fg.addmember(fu.name,fu.zone) my_ownership = set([('own', self.sess.username, self.sess.zone)]) #--collection-- perms1data = [ iRODSAccess ('write',self.coll_path, eg.name, self.sess.zone), iRODSAccess ('read', self.coll_path, fu.name, self.sess.zone) ] for perm in perms1data: self.sess.permissions.set ( perm ) p1 = self.sess.permissions.get ( self.coll, report_raw_acls = True) self.assertEqual(self.perms_lists_symm_diff( perms1data, p1 ), my_ownership) #--data object-- perms2data = [ iRODSAccess ('write',data.path, fg.name, self.sess.zone), iRODSAccess ('read', data.path, eu.name, self.sess.zone) ] for perm in perms2data: self.sess.permissions.set ( perm ) p2 = self.sess.permissions.get ( data, report_raw_acls = True) self.assertEqual(self.perms_lists_symm_diff( perms2data, p2 ), my_ownership) finally: ids_for_delete = [ u.id for u in (fu,fg,eu,eg) if u is not None ] for u in [ iRODSUser(self.sess.users,row) for row in self.sess.query(User).filter(In(User.id, ids_for_delete)) ]: u.remove()
def get(self, user_name, user_zone=""): query = self.sess.query(User).filter(User.name == user_name) if len(user_zone) > 0: query = query.filter(User.zone == user_zone) try: result = query.one() except NoResultFound: raise UserDoesNotExist() return iRODSUser(self, result)
def users_by_ids(session, ids=()): try: ids = list(iter(ids)) except TypeError: if type(ids) in (str, ) + six.integer_types: ids = int(ids) else: raise cond = () if not ids \ else (In(User.id,list(map(int,ids))),) if len(ids)>1 \ else (User.id == int(ids[0]),) return [ iRODSUser(session.users, i) for i in session.query( User.id, User.name, User.type, User.zone).filter(*cond) ]
def getmembers(self, name): results = self.sess.query(User).filter( User.type != 'rodsgroup', UserGroup.name == name) return [iRODSUser(self, row) for row in results]
def getmembers(self, name): results = self.sess.query(User).filter( User.type != 'rodsgroup', UserGroup.name == name).get_results() return [iRODSUser(self, row) for row in results]