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()
Example #2
0
    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 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)
Example #4
0
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)
    ]
Example #5
0
 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]