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
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