Example #1
0
    def _user_authorized(self, entity, method, *args):
        '''
        Returns a tuple where the first value if true if the user can
        perform this action, and false otherwise. The second value
        is an error message if the user can't perform this action
        '''
        if not public_server:
            return (True, None)

        if entity == 'global' and \
                method in ('authentication_required', 'authenticate'):
            # You can always ask if auth is required and
            # authenticate
            return (True, None)
        elif self.authenticated:
            if entity == 'global':
                # When authenticated you can do anithing with global
                return (True, None)
            elif entity == 'robot':
                # If this is a robot check if it is reserved by this user
                reserved = Reservation.reserved(self.current_user,
                                                args[0]['robot_model'],
                                                args[0]['robot_id'],
                                                datetime.datetime.now(),
                                                datetime.datetime.now())
                if len(reserved) > 0:
                    return (True, None)
                else:
                    return (False, 'There is no active reservation for ' +
                            str(args[0]))

        return (False, 'Authentication required for {}.{}({})'.format(
            entity, method, args))
Example #2
0
    def _user_authorized(self, entity, method, *args):
        '''
        Returns a tuple where the first value if true if the user can
        perform this action, and false otherwise. The second value
        is an error message if the user can't perform this action
        '''
        if not public_server:
            return (True, None)

        if entity == 'global' and \
                method in ('authentication_required', 'authenticate'):
            # You can always ask if auth is required and
            # authenticate
            return (True, None)
        elif self.authenticated:
            if entity == 'global':
                # When authenticated you can do anithing with global
                return (True, None)
            elif entity == 'robot':
                # If this is a robot check if it is reserved by this user
                reserved = Reservation.reserved(
                    self.current_user,
                    args[0]['robot_model'],
                    args[0]['robot_id'],
                    datetime.datetime.now(),
                    datetime.datetime.now()
                )
                if len(reserved) > 0:
                    return (True, None)
                else:
                    return (False, 'There is no active reservation for ' +
                            str(args[0]))

        return (False,
                'Authentication required for {}.{}({})'.format(entity,
                                                               method,
                                                               args))
 def test_new_reservation_overlaps_at_the_begining(self):
     reserved = Reservation.reserved('N6', '42',
                                     datetime(2000, 1, 1) - timedelta(hours=12),
                                     datetime(2000, 1, 1) + timedelta(hours=1), self.session)
 def test_new_reservation_is_possible(self):
     reserved = Reservation.reserved('N6', '42', datetime(2000, 1, 2),
                                     datetime(2000, 1, 3), self.session)
     self.assertEqual(0, len(reserved))
 def test_new_reservation_overlaps_at_the_end(self):
     reserved = Reservation.reserved('N6', '42',
                                     datetime(2000, 1, 1) + timedelta(hours=12),
                                     datetime(2000, 1, 3), self.session)
     self.assertEqual(1, len(reserved))
 def test_new_reservation_contains_older_one(self):
     reserved = Reservation.reserved('N6', '42', datetime(1999, 12, 31),
                                     datetime(2000, 1, 3), self.session)
     self.assertEqual(1, len(reserved))
Example #7
0
 def test_new_reservation_overlaps_at_the_begining(self):
     reserved = Reservation.reserved(
         'N6', '42',
         datetime(2000, 1, 1) - timedelta(hours=12),
         datetime(2000, 1, 1) + timedelta(hours=1), self.session)
Example #8
0
 def test_new_reservation_overlaps_at_the_end(self):
     reserved = Reservation.reserved(
         'N6', '42',
         datetime(2000, 1, 1) + timedelta(hours=12), datetime(2000, 1, 3),
         self.session)
     self.assertEqual(1, len(reserved))
Example #9
0
 def test_new_reservation_is_possible(self):
     reserved = Reservation.reserved('N6', '42', datetime(2000, 1, 2),
                                     datetime(2000, 1, 3), self.session)
     self.assertEqual(0, len(reserved))
Example #10
0
 def test_new_reservation_contains_older_one(self):
     reserved = Reservation.reserved('N6', '42', datetime(1999, 12, 31),
                                     datetime(2000, 1, 3), self.session)
     self.assertEqual(1, len(reserved))