def settings_groups_new(self):
        if self.request.redirect_forbidden:
            return HTTPFound(location='/forbidden/')
        elif userhelpers.checkUserPasswordChangeNeed(self.request):
            return HTTPFound(location='/settings/me/edit/')
        _ = self.request.translate

        tmp_group = {
            'name':'',
            'leader_id':'',
            'privileges':'',
        }

        if self.request.method == 'POST':
            tmp_group['name'] = self.request.POST.get('name').strip()
    #        tmp_group['leader_id'] = self.request.POST.get('leader_id').strip()
            if not self.checkIfGroupnameExists(tmp_group['name']):
                group = Group(tmp_group['name'])
                if security.has_permission("settings_users_modify_permissions", self.request.context, self.request):
                    privileges_list = ''
                    if len(self.request.POST.getall('privileges')) > 0:
                        for privilege in DBSession.query(Privilege).filter(Privilege.id.in_(self.request.POST.getall('privileges'))).all():
                            privileges_list += '|'+privilege.name + '|'
                    group.privileges = privileges_list
                DBSession.add(group)
                DBSession.flush()

                userAudit = UserAudit(self.request.user.id)
                userAudit.model = 'Group'
                userAudit.model_id = group.id
                userAudit.action = 'Create'
                userAudit.revision = group.metadata_revision
                DBSession.add(userAudit)
                DBSession.flush()
                self.request.session.flash(_(u"Group created."), 'success')
                if group.id != '' and group.id != 0:
                    return HTTPFound(location='/settings/groups/view/'+str(group.id))
            else:
                self.request.session.flash(_(u"Group with that name allready exists."), 'error')

        privileges = DBSession.query(Privilege).all()
        self.request.bread.append({'url':'/settings/', 'text':_('Settings')})
        self.request.bread.append({'url':'/settings/groups/', 'text':_('Groups')})
        self.request.bread.append({'url':'/settings/groups/new/', 'text':_('New')})
        return {'group':tmp_group, 'privileges':privileges}
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    Base.metadata.create_all(engine)
    with transaction.manager:
        sudo_user = User('superadmin', '')
        sudo_user.set_password('password')
        sudo_user.needs_password_change = True
        sudo_user.language = 'fi_FI'
        DBSession.add(sudo_user)
        DBSession.flush()
        
        sudo_group = Group('superadmin')
        sudo_group.set_leader_id(sudo_user.id)
        DBSession.add(sudo_group)
        DBSession.flush()

        sudo_user.groups = [sudo_group]
        DBSession.add(sudo_user)
        DBSession.flush()
        
        for setting_key, setting_value in initial_settings.items():
            tmp_setting = Setting(setting_key, setting_value, True)
            DBSession.add(tmp_setting)
            DBSession.flush()
        
        for permission in sorted(permissions_list):
            tmp_privilege = Privilege(permission)
            DBSession.add(tmp_privilege)
            DBSession.flush()
        
        print ''
        print 'login variables: superadmin / password'
        print ''