Exemplo n.º 1
0
    def _remove(self, user, method, **kw):

        if user == identity.current.user:
            raise BX(_('You cannot remove yourself'))

        # cancel all running and queued jobs
        Job.cancel_jobs_by_user(user, 'User %s removed' % user.user_name)

        # Return all systems in use by this user
        for system in System.query.filter(System.user == user):
            reservation = system.open_reservation
            system.unreserve(reservation=reservation,
                             service=method,
                             user=user)
        # Return all loaned systems in use by this user
        for system in System.query.filter(System.loaned == user):
            system.record_activity(user=identity.current.user,
                                   service=method,
                                   action=u'Changed',
                                   field=u'Loaned To',
                                   old=u'%s' % system.loaned,
                                   new=u'None')
            system.loaned = None
        # Change the owner to the caller
        for system in System.query.filter(System.owner == user):
            system.owner = identity.current.user
            system.record_activity(user=identity.current.user,
                                   service=method,
                                   action=u'Changed',
                                   field=u'Owner',
                                   old=u'%s' % user,
                                   new=u'%s' % identity.current.user)
        # Finally remove the user
        user.removed = datetime.utcnow()
Exemplo n.º 2
0
    def _disable(self,
                 user,
                 method,
                 msg='Your account has been temporarily disabled'):

        # cancel all queued and running jobs
        Job.cancel_jobs_by_user(user, msg)
Exemplo n.º 3
0
Arquivo: user.py Projeto: omps/beaker
    def _remove(self, user, method, **kw):

        if user == identity.current.user:
            raise BX(_('You cannot remove yourself'))

        # cancel all running and queued jobs
        Job.cancel_jobs_by_user(user, 'User %s removed' % user.user_name)

        # Return all systems in use by this user
        for system in System.query.filter(System.user==user):
            reservation = system.open_reservation
            system.unreserve(reservation=reservation, service=method, user=user)
        # Return all loaned systems in use by this user
        for system in System.query.filter(System.loaned==user):
            system.record_activity(user=identity.current.user, service=method,
                    action=u'Changed', field=u'Loaned To',
                    old=u'%s' % system.loaned, new=u'None')
            system.loaned = None
        # Change the owner to the caller
        for system in System.query.filter(System.owner==user):
            system.owner = identity.current.user
            system.record_activity(user=identity.current.user, service=method,
                    action=u'Changed', field=u'Owner',
                    old=u'%s' % user, new=u'%s' % identity.current.user)
        # Finally remove the user
        user.removed=datetime.utcnow()
Exemplo n.º 4
0
def _remove(user, method, **kw):
    if user == identity.current.user:
        raise BX(_('You cannot remove yourself'))

    # cancel all running and queued jobs
    Job.cancel_jobs_by_user(user, 'User %s removed' % user.user_name)

    # Return all systems in use by this user
    for system in System.query.filter(System.user==user):
        reservation = system.open_reservation
        system.unreserve(reservation=reservation, service=method)
    # Return all loaned systems in use by this user
    for system in System.query.filter(System.loaned==user):
        system.record_activity(user=identity.current.user, service=method,
                action=u'Changed', field=u'Loaned To',
                old=u'%s' % system.loaned, new=None)
        system.loaned = None
    # Remove the user from all system access policies
    for rule in SystemAccessPolicyRule.query.filter_by(user=user):
        rule.record_deletion(service=method)
        session.delete(rule)
    # Change the owner to the caller
    newowner = kw.get('newowner', identity.current.user)
    for system in System.query.filter(System.owner==user):
        system.owner = newowner
        system.record_activity(user=identity.current.user, service=method,
                action=u'Changed', field=u'Owner',
                               old=u'%s' % user, new=u'%s' % newowner)
    # Remove the user from all groups
    for group in user.groups:
        if not group.membership_type == GroupMembershipType.inverted:
            group.remove_member(user=user,
                    agent=identity.current.user, service=method)
    # Finally remove the user
    user.removed=datetime.utcnow()
Exemplo n.º 5
0
def _remove(user, method, **kw):
    if user == identity.current.user:
        raise BX(_('You cannot remove yourself'))

    # cancel all running and queued jobs
    Job.cancel_jobs_by_user(user, 'User %s removed' % user.user_name)

    # Return all systems in use by this user
    for system in System.query.filter(System.user == user):
        reservation = system.open_reservation
        system.unreserve(reservation=reservation, service=method)
    # Return all loaned systems in use by this user
    for system in System.query.filter(System.loaned == user):
        system.record_activity(user=identity.current.user,
                               service=method,
                               action=u'Changed',
                               field=u'Loaned To',
                               old=u'%s' % system.loaned,
                               new=None)
        system.loaned = None
    # Remove the user from all system access policies
    for rule in SystemAccessPolicyRule.query.filter_by(user=user):
        rule.record_deletion(service=method)
        session.delete(rule)
    # Change the owner to the caller
    newowner = kw.get('newowner', identity.current.user)
    for system in System.query.filter(System.owner == user):
        system.owner = newowner
        system.record_activity(user=identity.current.user,
                               service=method,
                               action=u'Changed',
                               field=u'Owner',
                               old=u'%s' % user,
                               new=u'%s' % newowner)
    for pool in SystemPool.query.filter(SystemPool.owning_user == user):
        pool.change_owner(user=newowner, service=method)
    # Remove the user from all groups
    for group in user.groups:
        if not group.membership_type == GroupMembershipType.inverted:
            group.remove_member(user=user,
                                agent=identity.current.user,
                                service=method)
    # Finally remove the user
    user.removed = datetime.utcnow()
Exemplo n.º 6
0
    def _remove(self, user, method, **kw):

        if user == identity.current.user:
            raise BX(_('You cannot remove yourself'))

        # cancel all running and queued jobs
        Job.cancel_jobs_by_user(user, 'User %s removed' % user.user_name)

        # Return all systems in use by this user
        for system in System.query.filter(System.user==user):
            msg = ''
            try:
                reservation = system.open_reservation
                system.unreserve(reservation=reservation,
                    service=method, user=user)
            except BX, error_msg:
                msg = 'Error: %s Action: %s' % (error_msg,system.release_action)
                system.activity.append(SystemActivity(identity.current.user, method, '%s' % system.release_action, 'Return', '', msg))
                system.activity.append(SystemActivity(identity.current.user, method, 'Returned', 'User', '%s' % user, ''))
Exemplo n.º 7
0
Arquivo: user.py Projeto: omps/beaker
    def _disable(self, user, method,
                 msg='Your account has been temporarily disabled'):

        # cancel all queued and running jobs
        Job.cancel_jobs_by_user(user, msg)