Exemplo n.º 1
0
def update_group(request):
    """updates the group with data from request
    """

    logger.debug('***update group method starts ***')

    logged_in_user = get_logged_in_user(request)

    # get parameters
    post_multi_dict = request.POST

    came_from = request.params.get('came_from', '/')
    group_id = int(post_multi_dict['group_id'])
    group = Group.query.filter_by(id=group_id).first()

    name = post_multi_dict['name']

    if group and name:

        description = post_multi_dict['description']

        # remove name and description to leave only permission in the dictionary
        post_multi_dict.pop('name')
        post_multi_dict.pop('description')
        permissions = get_permissions_from_multi_dict(post_multi_dict)

         # update the group
        group.name = name
        group.description = description
        group.permissions = permissions
        group.updated_by = logged_in_user
        group.date_updated = datetime.datetime.now()

        DBSession.add(group)

        logger.debug('group is updated successfully')

        request.session.flash(
                'success:Group <strong>%s</strong> is updated successfully' % name
            )

        logger.debug('***update group method ends ***')
    else:
        logger.debug('not all parameters are in request.params')
        log_param(request, 'group_id')
        log_param(request, 'name')
        response = Response(
            'There are missing parameters: '
            'group_id: %s, name: %s' % (group_id, name), 500
        )
        transaction.abort()
        return response

    response = Response('successfully updated %s group!' % name)
    return response
Exemplo n.º 2
0
def create_group(request):
    """creates a new Group
    """

    logger.debug('***create group method starts ***')

    logged_in_user = get_logged_in_user(request)

    # get params
    post_multi_dict = request.POST

    came_from = request.params.get('came_from', '/')
    name = post_multi_dict['name']

    logger.debug('new group name : %s' % name)

    if name:

        description = post_multi_dict['description']
        logger.debug('new group description : %s' % description)

        # remove name and description to leave only permissions in the dictionary
        post_multi_dict.pop('name')
        post_multi_dict.pop('description')

        permissions = get_permissions_from_multi_dict(post_multi_dict)
        logger.debug('new group permissions : %s' % permissions)

        try:
            # create the new group
            new_group = Group(
                name=name
            )
            new_group.description = description
            new_group.created_by = logged_in_user
            new_group.permissions = permissions

            DBSession.add(new_group)

            logger.debug('added new group successfully')

            request.session.flash(
                'success:Group <strong>%s</strong> is '
                'created successfully' % name
            )

            logger.debug('***create group method ends ***')

        except BaseException as e:
            request.session.flash('error:' + e.message)
            HTTPFound(location=came_from)
    else:
        logger.debug('not all parameters are in request.params')
        log_param(request, 'name')
        response = Response(
            'There are missing parameters: '
            'name: %s' % name, 500
        )
        transaction.abort()
        return response

    response = Response('successfully updated %s group!' % name)
    return response