def _index(req, c, ln, doctype, act, startPg, access,
                   mainmenu, fromdir, nextPg, nbPg, curpage, step,
                   mode):
            auth_args = {}
            if doctype:
                auth_args['doctype'] = doctype
            if act:
                auth_args['act'] = act
            uid = getUid(req)

            if uid == -1 or CFG_ACCESS_CONTROL_LEVEL_SITE >= 1:
                return page_not_authorized(req, "direct",
                                            navmenuid='submit')

            if CFG_CERN_SITE:
                ## HACK BEGIN: this is a hack for CMS and ATLAS draft
                user_info = collect_user_info(req)
                if doctype == 'CMSPUB' and act == "" and 'cds-admin [CERN]' not in user_info['group'] and not user_info['email'].lower() == '*****@*****.**':
                    if isGuestUser(uid):
                        return redirect_to_url(req, "%s/youraccount/login%s" % (
                            CFG_SITE_SECURE_URL,
                            make_canonical_urlargd({'referer' : CFG_SITE_SECURE_URL + req.unparsed_uri, 'ln' : args['ln']}, {}))
                                               , norobot=True)
                    if 'cms-publication-committee-chair [CERN]' not in user_info['group']:
                        return page_not_authorized(req, "../submit", text="In order to access this submission interface you need to be member of the CMS Publication Committee Chair.",
                                        navmenuid='submit')
                elif doctype == 'ATLPUB' and 'cds-admin [CERN]' not in user_info['group'] and not user_info['email'].lower() == '*****@*****.**':
                    if isGuestUser(uid):
                        return redirect_to_url(req, "%s/youraccount/login%s" % (
                            CFG_SITE_SECURE_URL,
                            make_canonical_urlargd({'referer' : CFG_SITE_SECURE_URL + req.unparsed_uri, 'ln' : args['ln']}, {}))
                                               , norobot=True)
                    if 'atlas-gen [CERN]' not in user_info['group']:
                        return page_not_authorized(req, "../submit", text="In order to access this submission interface you need to be member of ATLAS.",
                                        navmenuid='submit')
            ## HACK END

            if doctype == "":
                catalogues_text, at_least_one_submission_authorized, submission_exists = makeCataloguesTable(req, ln=CFG_SITE_LANG)
                if not at_least_one_submission_authorized and submission_exists:

                    if isGuestUser(uid):
                        return redirect_to_url(req, "%s/youraccount/login%s" % (
                            CFG_SITE_SECURE_URL,
                            make_canonical_urlargd({'referer' : CFG_SITE_SECURE_URL + req.unparsed_uri, 'ln' : args['ln']}, {}))
                                            , norobot=True)
                    else:

                        return page_not_authorized(req, "../submit",
                                                   uid=uid,
                                                   navmenuid='submit')
                return home(req, catalogues_text, c, ln)
            elif act == "":
                return action(req, c, ln, doctype)
            elif int(step)==0:
                return interface(req, c, ln, doctype, act, startPg, access, mainmenu, fromdir, nextPg, nbPg, curpage)
            else:
                return endaction(req, c, ln, doctype, act, startPg, access, mainmenu, fromdir, nextPg, nbPg, curpage, step, mode)
        def _index(req, c, ln, doctype, act, startPg, access, mainmenu,
                   fromdir, nextPg, nbPg, curpage, step, mode):
            auth_args = {}
            if doctype:
                auth_args['doctype'] = doctype
            if act:
                auth_args['act'] = act
            uid = getUid(req)

            if uid == -1 or CFG_ACCESS_CONTROL_LEVEL_SITE >= 1:
                return page_not_authorized(req, "direct", navmenuid='submit')

            if CFG_CERN_SITE:
                ## HACK BEGIN: this is a hack for CMS and ATLAS draft
                user_info = collect_user_info(req)
                if doctype == 'CMSPUB' and act == "" and 'cds-admin [CERN]' not in user_info[
                        'group'] and not user_info['email'].lower(
                        ) == '*****@*****.**':
                    if isGuestUser(uid):
                        return redirect_to_url(
                            req,
                            "%s/youraccount/login%s" %
                            (CFG_SITE_SECURE_URL,
                             make_canonical_urlargd(
                                 {
                                     'referer':
                                     CFG_SITE_SECURE_URL + req.unparsed_uri,
                                     'ln': args['ln']
                                 }, {})),
                            norobot=True)
                    if 'cms-publication-committee-chair [CERN]' not in user_info[
                            'group']:
                        return page_not_authorized(
                            req,
                            "../submit",
                            text=
                            "In order to access this submission interface you need to be member of the CMS Publication Committee Chair.",
                            navmenuid='submit')
                elif doctype == 'ATLPUB' and 'cds-admin [CERN]' not in user_info[
                        'group'] and not user_info['email'].lower(
                        ) == '*****@*****.**':
                    if isGuestUser(uid):
                        return redirect_to_url(
                            req,
                            "%s/youraccount/login%s" %
                            (CFG_SITE_SECURE_URL,
                             make_canonical_urlargd(
                                 {
                                     'referer':
                                     CFG_SITE_SECURE_URL + req.unparsed_uri,
                                     'ln': args['ln']
                                 }, {})),
                            norobot=True)
                    if 'atlas-gen [CERN]' not in user_info['group']:
                        return page_not_authorized(
                            req,
                            "../submit",
                            text=
                            "In order to access this submission interface you need to be member of ATLAS.",
                            navmenuid='submit')
            ## HACK END

            if doctype == "":
                catalogues_text, at_least_one_submission_authorized, submission_exists = makeCataloguesTable(
                    req, ln=CFG_SITE_LANG)
                if not at_least_one_submission_authorized and submission_exists:

                    if isGuestUser(uid):
                        return redirect_to_url(
                            req,
                            "%s/youraccount/login%s" %
                            (CFG_SITE_SECURE_URL,
                             make_canonical_urlargd(
                                 {
                                     'referer':
                                     CFG_SITE_SECURE_URL + req.unparsed_uri,
                                     'ln': args['ln']
                                 }, {})),
                            norobot=True)
                    else:

                        return page_not_authorized(req,
                                                   "../submit",
                                                   uid=uid,
                                                   navmenuid='submit')
                return home(req, catalogues_text, c, ln)
            elif act == "":
                return action(req, c, ln, doctype)
            elif int(step) == 0:
                return interface(req, c, ln, doctype, act, startPg, access,
                                 mainmenu, fromdir, nextPg, nbPg, curpage)
            else:
                return endaction(req, c, ln, doctype, act, startPg, access,
                                 mainmenu, fromdir, nextPg, nbPg, curpage,
                                 step, mode)