コード例 #1
0
ファイル: default_actions.py プロジェクト: arturodr/indico
def create_dummy_user():
    """
    Creates a dummy user for testing purposes
    """
    avatar = Avatar()

    avatar.setName("fake")
    avatar.setSurName("fake")
    avatar.setOrganisation("fake")
    avatar.setLang("en_GB")
    avatar.setEmail("*****@*****.**")

    # registering user
    ah = AvatarHolder()
    ah.add(avatar)

    # setting up the login info
    li = LoginInfo("dummyuser", "dummyuser")
    ih = AuthenticatorMgr()
    userid = ih.createIdentity(li, avatar, "Local")
    ih.add(userid)

    # activate the account
    avatar.activateAccount()

    # since the DB is empty, we have to add dummy user as admin
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()

    al = minfo.getAdminList()
    al.grant(avatar)

    dc = DefaultConference()
    HelperMaKaCInfo.getMaKaCInfoInstance().setDefaultConference(dc)
    return avatar
コード例 #2
0
ファイル: default_actions.py プロジェクト: sylvestre/indico
def create_dummy_user():
    """
    Creates a dummy user for testing purposes
    """
    avatar = Avatar()

    avatar.setName("fake")
    avatar.setSurName("fake")
    avatar.setOrganisation("fake")
    avatar.setLang("en_GB")
    avatar.setEmail("*****@*****.**")

    # registering user
    ah = AvatarHolder()
    ah.add(avatar)

    # setting up the login info
    li = LoginInfo("dummyuser", "dummyuser")
    ih = AuthenticatorMgr()
    userid = ih.createIdentity(li, avatar, "Local")
    ih.add(userid)

    # activate the account
    avatar.activateAccount()

    # since the DB is empty, we have to add dummy user as admin
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()

    al = minfo.getAdminList()
    al.grant(avatar)

    dc = DefaultConference()
    HelperMaKaCInfo.getMaKaCInfoInstance().setDefaultConference(dc)
    return avatar
コード例 #3
0
def create_dummy_users(dummyuser_has_password=False):
    """
    Creates a dummy user for testing purposes.

    If dummyuser_has_password is set, "dummyuser" and "fake-1" can be used for logging in.
    """
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
    ah = AvatarHolder()
    authManager = AuthenticatorMgr()
    avatars = []
    al = minfo.getAdminList()

    avatar = create_user("fake", "dummyuser", authManager, dummyuser_has_password)
    ah.add(avatar)
    avatars.append(avatar)
    al.grant(avatar)

    for i in xrange(1, 5):
        avatar = create_user("fake-%d" % i, "fake-%d" % i, authManager, dummyuser_has_password and i == 1)
        avatar.setId("fake-%d" % i)
        ah.add(avatar)
        avatars.append(avatar)

    HelperMaKaCInfo.getMaKaCInfoInstance().setDefaultConference(DefaultConference())
    return avatars
コード例 #4
0
ファイル: default_actions.py プロジェクト: ferhatelmas/indico
def create_dummy_users():
    """
    Creates a dummy user for testing purposes
    """
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
    ah = AvatarHolder()
    authManager = AuthenticatorMgr()
    avatars = []
    al = minfo.getAdminList()

    avatar = create_user("fake", "dummyuser", authManager)
    ah.add(avatar)
    avatars.append(avatar)
    al.grant(avatar)

    for i in xrange(1, 5):
        avatar = create_user("fake-%d" % i, "fake-%d" % i, authManager)
        avatar.setId("fake-%d" % i)
        ah.add(avatar)
        avatars.append(avatar)

    # since the DB is empty, we have to add dummy user as admin
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()

    dc = DefaultConference()
    HelperMaKaCInfo.getMaKaCInfoInstance().setDefaultConference(dc)
    return avatars
コード例 #5
0
def create_dummy_users(dummyuser_has_password=False):
    """
    Creates a dummy user for testing purposes.

    If dummyuser_has_password is set, "dummyuser" and "fake-1" can be used for logging in.
    """
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
    ah = AvatarHolder()
    authManager = AuthenticatorMgr()
    avatars = []
    al = minfo.getAdminList()

    avatar = create_user("fake", "dummyuser", authManager,
                         dummyuser_has_password)
    ah.add(avatar)
    avatars.append(avatar)
    al.grant(avatar)

    for i in xrange(1, 5):
        avatar = create_user("fake-%d" % i, "fake-%d" % i, authManager,
                             dummyuser_has_password and i == 1)
        avatar.setId("fake-%d" % i)
        ah.add(avatar)
        avatars.append(avatar)

    HelperMaKaCInfo.getMaKaCInfoInstance().setDefaultConference(
        DefaultConference())
    return avatars
コード例 #6
0
ファイル: wrappers.py プロジェクト: NIIF/indico
 def remote_addr(self):
     """The remote address of the client."""
     with DBMgr.getInstance().global_connection():
         if HelperMaKaCInfo.getMaKaCInfoInstance().useProxy():
             if self.access_route:
                 return self.access_route[0]
     return super(IndicoRequest, self).remote_addr
コード例 #7
0
ファイル: date_time.py プロジェクト: sofian86/indico-gh-test
def server_to_utc(dt):
    """Converts the given datetime in the server's TZ to UTC.

    The given datetime **MUST** be naive but already contain the correct time in the server's TZ.
    """
    server_tz = get_timezone(HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone())
    return server_tz.localize(dt).astimezone(pytz.utc)
コード例 #8
0
ファイル: wrappers.py プロジェクト: pferreir/indico-backup
 def remote_addr(self):
     """The remote address of the client."""
     with DBMgr.getInstance().global_connection():
         if HelperMaKaCInfo.getMaKaCInfoInstance().useProxy():
             if self.access_route:
                 return self.access_route[0]
     return super(IndicoRequest, self).remote_addr
コード例 #9
0
ファイル: badge.py プロジェクト: pmart123/indico
 def __init__(self, conference):
     if conference.getId() == "default":
         #Best values for CERN printing service
         self.__topMargin = 1.6
         self.__bottomMargin = 1.1
         self.__leftMargin = 1.6
         self.__rightMargin = 1.4
         self.__marginColumns = 1.0
         self.__marginRows = 0.0
         self._pageSize = "A4"
         self._landscape = False
         self._drawDashedRectangles = True
     else:
         defaultConferencePDFOptions = (
             HelperMaKaCInfo.getMaKaCInfoInstance().getDefaultConference(
             ).getBadgeTemplateManager().getPDFOptions())
         self.__topMargin = defaultConferencePDFOptions.getTopMargin()
         self.__bottomMargin = defaultConferencePDFOptions.getBottomMargin()
         self.__leftMargin = defaultConferencePDFOptions.getLeftMargin()
         self.__rightMargin = defaultConferencePDFOptions.getRightMargin()
         self.__marginColumns = defaultConferencePDFOptions.getMarginColumns(
         )
         self.__marginRows = defaultConferencePDFOptions.getMarginRows()
         self._pageSize = defaultConferencePDFOptions.getPagesize()
         self._landscape = defaultConferencePDFOptions.getLandscape()
         self._drawDashedRectangles = defaultConferencePDFOptions.getDrawDashedRectangles(
         )
コード例 #10
0
ファイル: controllers.py プロジェクト: marcosmolla/indico
    def _create_user(self, form, handler):
        data = form.data
        existing_user_id = session.get('register_pending_user')
        if existing_user_id:
            # Get pending user and set it as non-pending
            user = User.get(existing_user_id)
            user.is_pending = False
        else:
            user = User(first_name=data['first_name'], last_name=data['last_name'], email=data['email'],
                        address=data.get('address', ''), phone=data.get('phone', ''), affiliation=data['affiliation'])

        identity = handler.create_identity(data)
        user.identities.add(identity)
        user.secondary_emails = handler.extra_emails - {user.email}
        user.favorite_users.add(user)
        db.session.add(user)
        minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
        timezone = session.timezone
        if timezone == 'LOCAL':
            timezone = minfo.getTimezone()
        user.settings.set('timezone', timezone)
        user.settings.set('lang', session.lang or minfo.getLang())
        handler.update_user(user, form)
        db.session.flush()
        login_user(user, identity)
        msg = _('You have sucessfully registered your Indico profile. '
                'Check <a href="{url}">your profile</a> for further details and settings.')
        flash(Markup(msg).format(url=url_for('users.user_profile')), 'success')
        return handler.redirect_success()
コード例 #11
0
def server_to_utc(dt):
    """Converts the given datetime in the server's TZ to UTC.

    The given datetime **MUST** be naive but already contain the correct time in the server's TZ.
    """
    server_tz = get_timezone(
        HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone())
    return server_tz.localize(dt).astimezone(pytz.utc)
コード例 #12
0
ファイル: __init__.py プロジェクト: stomanin/indico
def _can_access(cls, obj, user, **kwargs):
    """Grant full access to attachments/folders to certain IPs"""
    from MaKaC.common import HelperMaKaCInfo
    if not has_request_context():
        return
    full_access_ips = HelperMaKaCInfo.getMaKaCInfoInstance().getIPBasedACLMgr().get_full_access_acl()
    if request.remote_addr in full_access_ips:
        return True
コード例 #13
0
ファイル: admins.py プロジェクト: belokop/indico_bare
 def _process(self):
     minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
     cfg = minfo.getSocialAppConfig()
     if 'socialActive' in self._params:
         cfg['active'] = self._params.get('socialActive') == 'yes'
     if 'facebook_appId' in self._params:
         cfg.setdefault('facebook', PersistentDict())['appId'] = self._params.get('facebook_appId')
     self._redirect( urlHandlers.UHAdminLayoutGeneral.getURL() )
コード例 #14
0
ファイル: __init__.py プロジェクト: hennogous/indico
def _can_access(cls, obj, user, **kwargs):
    """Grant full access to attachments/folders to certain IPs"""
    from MaKaC.common import HelperMaKaCInfo
    if not has_request_context():
        return
    full_access_ips = HelperMaKaCInfo.getMaKaCInfoInstance().getIPBasedACLMgr().get_full_access_acl()
    if request.remote_addr in full_access_ips:
        return True
コード例 #15
0
ファイル: admins.py プロジェクト: sylvestre/indico
 def _process(self):
     minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
     cfg = minfo.getSocialAppConfig()
     if 'socialActive' in self._params:
         cfg['active'] = self._params.get('socialActive') == 'yes'
     if 'facebook_appId' in self._params:
         cfg.setdefault('facebook', PersistentDict())['appId'] = self._params.get('facebook_appId')
     self._redirect( urlHandlers.UHAdminLayoutGeneral.getURL() )
コード例 #16
0
ファイル: admins.py プロジェクト: NIIF/indico
 def _checkProtection(self):
     RHProtected._checkProtection(self)
     if not session.user and not self._doProcess:
         return
     self._al = HelperMaKaCInfo.getMaKaCInfoInstance().getAdminList()
     if not session.user.isAdmin():
         if not self._al.getList():  # XXX can we just fail here instead of pretending the user is an admin?!
             return
         raise AdminError("area")
コード例 #17
0
 def _create_home(self):
     # get default/selected view
     styleMgr = HelperMaKaCInfo.getMaKaCInfoInstance().getStyleManager()
     view = self._rh._target.getDefaultStyle()
     # if no default view was attributed, then get the configuration default
     if view == "" or not styleMgr.existsStyle(view) or view in styleMgr.getXSLStyles():
         view = styleMgr.getDefaultStyleForEventType(self._eventType)
     p = WPTPLStaticConferenceDisplay(self._rh, self._rh._target, view, self._eventType, self._rh._reqParams)
     self._html = p.display(**self._rh._getRequestParams())
コード例 #18
0
 def _save_file(self, srcPath, static_site_id):
     volume = HelperMaKaCInfo.getMaKaCInfoInstance().getArchivingVolume()
     path = os.path.join(Config.getInstance().getOfflineStore(), volume, 'offline', self._conf.getId())
     file_path = os.path.join(path, '{}.zip'.format(static_site_id))
     try:
         os.makedirs(path)
     except OSError as e:
         if e.errno != errno.EEXIST:
             raise
     shutil.copyfile(srcPath, file_path)
     return file_path
コード例 #19
0
ファイル: ePaymentModif.py プロジェクト: lukasnellen/indico
 def _process( self ):
     modPay = self._conf.getModPay().getModPayById(self._epayment)
     if modPay is not None:
         if modPay.getId() == "CERNYellowPay":
             minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
             al = minfo.getAdminList()
             if al.isAdmin( self._getUser() ):
                 modPay.setEnabled(not modPay.isEnabled())
         else:
             modPay.setEnabled(not modPay.isEnabled())
     self._redirect(urlHandlers.UHConfModifEPayment.getURL(self._conf))
コード例 #20
0
ファイル: epayments.py プロジェクト: lukasnellen/indico
    def _getSectionsHTML(self):
        modPay=self._conf.getModPay()
        html=[]
        enabledBulb = Configuration.Config.getInstance().getSystemIconURL( "enabledSection" )
        notEnabledBulb = Configuration.Config.getInstance().getSystemIconURL( "disabledSection" )
        enabledText = _("Click to disable")
        disabledText = _("Click to enable")
        for gs in modPay.getSortedModPay():
                      
            urlStatus = urlHandlers.UHConfModifEPaymentEnableSection.getURL(self._conf)
            urlStatus.addParam("epayment", gs.getId())
            urlModif = gs.getConfModifEPaymentURL(self._conf)
            img = enabledBulb
            text = enabledText
            if not gs.isEnabled():
                img = notEnabledBulb
                text = disabledText

            # CERN Plugin: Just admins can see and modify it
            if gs.getId() == "CERNYellowPay":
                minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
                al = minfo.getAdminList()
                if not al.isAdmin( self._user ):
                    from MaKaC.plugins.EPayment.CERNYellowPay.options import globalOptions
                    endis="enable"
                    departmentName = globalOptions[1][1]["defaultValue"]
                    emailAddress = globalOptions[0][1]["defaultValue"]
                    if gs.isEnabled():
                        endis="disable"
                        emailAddress = minfo.getSupportEmail()
                        departmentName = "Indico support"
                    html.insert(0, """
                        <tr>
                        <td>
                            <img src=%s alt="%s" class="imglink">&nbsp;&nbsp;<b>CERN E-Payment</b> <small>
                            (please, contact <a href="mailto:%s?subject=Indico Epayment - Conference ID: %s">%s</a> to %s 
                            the CERN e-payment module)</small>
                        </td>
                        </tr>
                        """%(img, text, emailAddress, self._conf.getId(), departmentName, endis))
                    continue
            #################################################
            
            selbox = ""
            html.append("""
                        <tr>
                        <td>
                            <a href=%s><img src=%s alt="%s" class="imglink"></a>&nbsp;%s&nbsp;<a href=%s>%s</a>
                        </td>
                        </tr>
                        """%(quoteattr(str(urlStatus)), img, text, selbox, quoteattr(str(urlModif)), gs.getTitle()) )
        html.insert(0, """<a href="" name="sections"></a><input type="hidden" name="oldpos"><table align="left">""")
        html.append("</table>")
        return "".join(html)
コード例 #21
0
 def _create_home(self):
     # get default/selected view
     styleMgr = HelperMaKaCInfo.getMaKaCInfoInstance().getStyleManager()
     view = self._rh._target.getDefaultStyle()
     # if no default view was attributed, then get the configuration default
     if view == "" or not styleMgr.existsStyle(
             view) or view in styleMgr.getXSLStyles():
         view = styleMgr.getDefaultStyleForEventType(self._eventType)
     p = WPTPLStaticConferenceDisplay(self._rh, self._rh._target, view,
                                      self._eventType, self._rh._reqParams)
     self._html = p.display(**self._rh._getRequestParams())
コード例 #22
0
 def _save_file(self, srcPath, static_site_id):
     volume = HelperMaKaCInfo.getMaKaCInfoInstance().getArchivingVolume()
     path = os.path.join(Config.getInstance().getOfflineStore(), volume, 'offline', self._conf.getId())
     file_path = os.path.join(path, '{}.zip'.format(static_site_id))
     try:
         os.makedirs(path)
     except OSError as e:
         if e.errno != errno.EEXIST:
             raise
     shutil.copyfile(srcPath, file_path)
     return file_path
コード例 #23
0
ファイル: app.py プロジェクト: hennogous/indico
def setup_jinja(app):
    config = Config.getInstance()
    # Unicode hack
    app.jinja_env.add_extension(EnsureUnicodeExtension)
    app.add_template_filter(EnsureUnicodeExtension.ensure_unicode)
    # Useful (Python) builtins
    app.add_template_global(dict)
    # Global functions
    app.add_template_global(url_for)
    app.add_template_global(url_for_plugin)
    app.add_template_global(url_rule_to_js)
    app.add_template_global(IndicoConfigWrapper(config), 'indico_config')
    app.add_template_global(config.getSystemIconURL, 'system_icon')
    app.add_template_global(include_css_assets)
    app.add_template_global(include_js_assets)
    app.add_template_global(include_plugin_css_assets)
    app.add_template_global(include_plugin_js_assets)
    app.add_template_global(call_template_hook, 'template_hook')
    app.add_template_global(is_single_line_field, '_is_single_line_field')
    app.add_template_global(render_field, '_render_field')
    app.add_template_global(iter_form_fields, '_iter_form_fields')
    app.add_template_global(format_currency)
    app.add_template_global(get_currency_name)
    app.add_template_global(url_for_login)
    app.add_template_global(url_for_logout)
    app.add_template_global(lambda: unicode(uuid.uuid4()), 'uuid')
    app.add_template_global(icon_from_mimetype)
    # Filters (indico functions returning UTF8)
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_date))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_time))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_datetime))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_human_date))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_timedelta))
    # Filters (new ones returning unicode)
    app.add_template_filter(date_time_util.format_human_timedelta)
    app.add_template_filter(lambda d: Markup(html_params(**d)), 'html_params')
    app.add_template_filter(underline)
    app.add_template_filter(markdown)
    app.add_template_filter(dedent)
    app.add_template_filter(natsort)
    app.add_template_filter(groupby)
    app.add_template_filter(any)
    app.add_template_filter(strip_tags)
    app.add_template_filter(alpha_enum)
    # Tests
    app.add_template_test(instanceof)  # only use this test if you really have to!
    app.add_template_test(subclassof)  # only use this test if you really have to!
    # i18n
    app.jinja_env.add_extension('jinja2.ext.i18n')
    app.jinja_env.install_gettext_callables(gettext_context, ngettext_context, True)
    app.add_template_global(lambda: HelperMaKaCInfo.getMaKaCInfoInstance().getLang(), 'get_default_language')
    # webassets
    app.jinja_env.add_extension('webassets.ext.jinja2.AssetsExtension')
    app.jinja_env.assets_environment = core_env
コード例 #24
0
 def _process(self):
     modPay = self._conf.getModPay().getModPayById(self._epayment)
     if modPay is not None:
         if modPay.getId() == "CERNYellowPay":
             minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
             al = minfo.getAdminList()
             if al.isAdmin(self._getUser()):
                 modPay.setEnabled(not modPay.isEnabled())
         else:
             modPay.setEnabled(not modPay.isEnabled())
     self._redirect(urlHandlers.UHConfModifEPayment.getURL(self._conf))
コード例 #25
0
def setup_jinja(app):
    config = Config.getInstance()
    # Unicode hack
    app.jinja_env.add_extension(EnsureUnicodeExtension)
    app.add_template_filter(EnsureUnicodeExtension.ensure_unicode)
    # Global functions
    app.add_template_global(url_for)
    app.add_template_global(url_for_plugin)
    app.add_template_global(url_rule_to_js)
    app.add_template_global(IndicoConfigWrapper(config), 'indico_config')
    app.add_template_global(config.getSystemIconURL, 'system_icon')
    app.add_template_global(include_css_assets)
    app.add_template_global(include_js_assets)
    app.add_template_global(include_plugin_css_assets)
    app.add_template_global(include_plugin_js_assets)
    app.add_template_global(call_template_hook, 'template_hook')
    app.add_template_global(is_single_line_field, '_is_single_line_field')
    app.add_template_global(render_field, '_render_field')
    app.add_template_global(format_currency)
    app.add_template_global(get_currency_name)
    app.add_template_global(url_for_login)
    app.add_template_global(url_for_logout)
    # Filters (indico functions returning UTF8)
    app.add_template_filter(
        EnsureUnicodeExtension.wrap_func(date_time_util.format_date))
    app.add_template_filter(
        EnsureUnicodeExtension.wrap_func(date_time_util.format_time))
    app.add_template_filter(
        EnsureUnicodeExtension.wrap_func(date_time_util.format_datetime))
    app.add_template_filter(
        EnsureUnicodeExtension.wrap_func(date_time_util.format_human_date))
    app.add_template_filter(
        EnsureUnicodeExtension.wrap_func(date_time_util.format_timedelta))
    # Filters (new ones returning unicode)
    app.add_template_filter(lambda d: Markup(html_params(**d)), 'html_params')
    app.add_template_filter(underline)
    app.add_template_filter(markdown)
    app.add_template_filter(dedent)
    app.add_template_filter(natsort)
    # Tests
    app.add_template_test(
        instanceof)  # only use this test if you really have to!
    app.add_template_test(equalto)
    # i18n
    app.jinja_env.add_extension('jinja2.ext.i18n')
    app.jinja_env.install_gettext_callables(gettext_context, ngettext_context,
                                            True)
    app.add_template_global(
        lambda: HelperMaKaCInfo.getMaKaCInfoInstance().getLang(),
        'get_default_language')
    # webassets
    app.jinja_env.add_extension('webassets.ext.jinja2.AssetsExtension')
    app.jinja_env.assets_environment = core_env
コード例 #26
0
ファイル: date_time.py プロジェクト: sofian86/indico-gh-test
def format_datetime(dt, format='medium', locale=None, timezone=None, server_tz=False):
    """
    Basically a wrapper around Babel's own format_datetime
    """
    if not locale:
        locale = currentLocale()
    if not timezone and dt.tzinfo:
        timezone = DisplayTZ().getDisplayTZ()
    elif server_tz:
        timezone = HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone()

    return _format_datetime(dt, format=format, locale=locale, tzinfo=timezone).encode('utf-8')
コード例 #27
0
ファイル: ePaymentModif.py プロジェクト: lukasnellen/indico
 def _process( self ):
     if not self._cancel:
         modpay = self._conf.getModPay()
         params = self._getRequestParams()
         #modpay.getModPayLater().setValues(params)
         modpay.setPaymentDetails(params.get("detailPayment", ""))
         modpay.setPaymentSpecificConditions(params.get("specificConditionsPayment", ""))
         from MaKaC.common import HelperMaKaCInfo
         minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
         al = minfo.getAdminList()
         if al.isAdmin( self._getUser() ):
             modpay.setPaymentConditions(params.get("conditionsPayment", ""))
             modpay.setPaymentConditionsEnabled(params.has_key("conditionsEnabled"))
     self._redirect(urlHandlers.UHConfModifEPayment.getURL(self._conf))    
コード例 #28
0
ファイル: admins.py プロジェクト: sylvestre/indico
    def hasRights(request = None, user = None):
        """ Returns True if the user is a Server Admin
            request: an RH or Service object
            user: an Avatar object
            If user is not None, the request object will be used to check the user's privileges.
            Otherwise the user will be retrieved from the request object
        """
        if user is None:
            if request is None:
                return False
            else:
                user = request._getUser()

        minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
        serverAdmins = minfo.getAdminList()
        return serverAdmins.isAdmin(user)
コード例 #29
0
ファイル: templates.py プロジェクト: wtakase/indico
    def _checkParams(self, params):
        admins.RHAdminBase._checkParams(self, params)
        self.__defaultConferencePDFOptions = (
            HelperMaKaCInfo.getMaKaCInfoInstance().getDefaultConference(
            ).getBadgeTemplateManager().getPDFOptions())

        try:
            self.__marginTop = float(params.get("marginTop", ''))
        except ValueError:
            self.__marginTop = self.__defaultConferencePDFOptions.getTopMargin(
            )

        try:
            self.__marginBottom = float(params.get("marginBottom", ''))
        except ValueError:
            self.__marginBottom = self.__defaultConferencePDFOptions.getBottomMargin(
            )

        try:
            self.__marginLeft = float(params.get("marginLeft", ''))
        except ValueError:
            self.__marginLeft = self.__defaultConferencePDFOptions.getLeftMargin(
            )

        try:
            self.__marginRight = float(params.get("marginRight", ''))
        except ValueError:
            self.__marginRight = self.__defaultConferencePDFOptions.getRightMargin(
            )

        try:
            self.__marginColumns = float(params.get("marginColumns", ''))
        except ValueError:
            self.__marginColumns = self.__defaultConferencePDFOptions.getMarginColumns(
            )

        try:
            self.__marginRows = float(params.get("marginRows", ''))
        except ValueError:
            self.__marginRows = self.__defaultConferencePDFOptions.getMarginRows(
            )

        self.__pagesize = params.get("pagesize", 'A4')

        self.__drawDashedRectangles = params.get("drawDashedRectangles",
                                                 False) is not False
        self.__landscape = params.get('landscape') == '1'
コード例 #30
0
ファイル: app.py プロジェクト: k3njiy/indico
def setup_jinja(app):
    config = Config.getInstance()
    # Unicode hack
    app.jinja_env.add_extension(EnsureUnicodeExtension)
    app.add_template_filter(EnsureUnicodeExtension.ensure_unicode)
    # Global functions
    app.add_template_global(url_for)
    app.add_template_global(url_for_plugin)
    app.add_template_global(url_rule_to_js)
    app.add_template_global(IndicoConfigWrapper(config), "indico_config")
    app.add_template_global(config.getSystemIconURL, "system_icon")
    app.add_template_global(include_css_assets)
    app.add_template_global(include_js_assets)
    app.add_template_global(include_plugin_css_assets)
    app.add_template_global(include_plugin_js_assets)
    app.add_template_global(call_template_hook, "template_hook")
    app.add_template_global(is_single_line_field, "_is_single_line_field")
    app.add_template_global(render_field, "_render_field")
    app.add_template_global(format_currency)
    app.add_template_global(get_currency_name)
    app.add_template_global(url_for_login)
    app.add_template_global(url_for_logout)
    # Filters (indico functions returning UTF8)
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_date))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_time))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_datetime))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_human_date))
    app.add_template_filter(EnsureUnicodeExtension.wrap_func(date_time_util.format_timedelta))
    # Filters (new ones returning unicode)
    app.add_template_filter(date_time_util.format_human_timedelta)
    app.add_template_filter(lambda d: Markup(html_params(**d)), "html_params")
    app.add_template_filter(underline)
    app.add_template_filter(markdown)
    app.add_template_filter(dedent)
    app.add_template_filter(natsort)
    app.add_template_filter(groupby)
    app.add_template_filter(any)
    # Tests
    app.add_template_test(instanceof)  # only use this test if you really have to!
    app.add_template_test(equalto)
    # i18n
    app.jinja_env.add_extension("jinja2.ext.i18n")
    app.jinja_env.install_gettext_callables(gettext_context, ngettext_context, True)
    app.add_template_global(lambda: HelperMaKaCInfo.getMaKaCInfoInstance().getLang(), "get_default_language")
    # webassets
    app.jinja_env.add_extension("webassets.ext.jinja2.AssetsExtension")
    app.jinja_env.assets_environment = core_env
コード例 #31
0
 def _process(self):
     if not self._cancel:
         modpay = self._conf.getModPay()
         params = self._getRequestParams()
         #modpay.getModPayLater().setValues(params)
         modpay.setPaymentDetails(params.get("detailPayment", ""))
         modpay.setPaymentSpecificConditions(
             params.get("specificConditionsPayment", ""))
         from MaKaC.common import HelperMaKaCInfo
         minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
         al = minfo.getAdminList()
         if al.isAdmin(self._getUser()):
             modpay.setPaymentConditions(params.get("conditionsPayment",
                                                    ""))
             modpay.setPaymentConditionsEnabled(
                 params.has_key("conditionsEnabled"))
     self._redirect(urlHandlers.UHConfModifEPayment.getURL(self._conf))
コード例 #32
0
def format_time(t,
                format='short',
                locale=None,
                timezone=None,
                server_tz=False):
    """
    Basically a wrapper around Babel's own format_time
    """
    if not locale:
        locale = get_current_locale()
    if not timezone and t.tzinfo:
        timezone = DisplayTZ().getDisplayTZ()
    elif server_tz:
        timezone = HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone()
    if timezone:
        timezone = get_timezone(timezone)

    return _format_time(t, format=format, locale=locale,
                        tzinfo=timezone).encode('utf-8')
コード例 #33
0
ファイル: default_actions.py プロジェクト: ferhatelmas/indico
def initialize_new_db(root):
    """
    Initializes a new DB in debug mode
    """

    # Reset everything
    for e in root.keys():
        del root[e]

    # initialize db root
    cm = CategoryManager()
    cm.getRoot()

    home = cm.getById('0')

    # set debug mode on
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
    minfo.setDebugActive(True)

    return home
コード例 #34
0
ファイル: default_actions.py プロジェクト: sylvestre/indico
def initialize_new_db(root):
    """
    Initializes a new DB in debug mode
    """

    # Reset everything
    for e in root.keys():
        del root[e]

    # initialize db root
    cm = CategoryManager()
    cm.getRoot()

    home = cm.getById('0')

    # set debug mode on
    minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
    minfo.setDebugActive(True)

    return home
コード例 #35
0
def format_datetime(dt,
                    format='medium',
                    locale=None,
                    timezone=None,
                    server_tz=False,
                    keep_tz=False):
    """
    Basically a wrapper around Babel's own format_datetime
    """
    if not locale:
        locale = get_current_locale()
    if keep_tz:
        assert timezone is None
        timezone = dt.tzinfo
    elif not timezone and dt.tzinfo:
        timezone = DisplayTZ().getDisplayTZ()
    elif server_tz:
        timezone = HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone()

    return _format_datetime(dt, format=format, locale=locale,
                            tzinfo=timezone).encode('utf-8')
コード例 #36
0
ファイル: templates.py プロジェクト: OmeGak/indico
    def _checkParams( self, params ):
        admins.RHAdminBase._checkParams( self, params )
        self.__defaultConferencePDFOptions = (HelperMaKaCInfo.getMaKaCInfoInstance().getDefaultConference()
                                              .getBadgeTemplateManager().getPDFOptions())

        try:
            self.__marginTop = float(params.get("marginTop",''))
        except ValueError:
            self.__marginTop = self.__defaultConferencePDFOptions.getTopMargin()

        try:
            self.__marginBottom = float(params.get("marginBottom",''))
        except ValueError:
            self.__marginBottom = self.__defaultConferencePDFOptions.getBottomMargin()

        try:
            self.__marginLeft = float(params.get("marginLeft",''))
        except ValueError:
            self.__marginLeft = self.__defaultConferencePDFOptions.getLeftMargin()

        try:
            self.__marginRight = float(params.get("marginRight",''))
        except ValueError:
            self.__marginRight = self.__defaultConferencePDFOptions.getRightMargin()

        try:
            self.__marginColumns = float(params.get("marginColumns",''))
        except ValueError:
            self.__marginColumns = self.__defaultConferencePDFOptions.getMarginColumns()

        try:
            self.__marginRows = float(params.get("marginRows",''))
        except ValueError:
            self.__marginRows = self.__defaultConferencePDFOptions.getMarginRows()

        self.__pagesize = params.get("pagesize",'A4')

        self.__drawDashedRectangles = params.get("drawDashedRectangles", False) is not False
        self.__landscape = params.get('landscape') == '1'
コード例 #37
0
    def _create_user(self, form, handler, pending_user):
        data = form.data
        if pending_user:
            user = pending_user
            user.is_pending = False
        else:
            user = User()
        form.populate_obj(user, skip={'email'})
        if form.email.data in user.secondary_emails:
            # This can happen if there's a pending user who has a secondary email
            # for some weird reason which should now become the primary email...
            user.make_email_primary(form.email.data)
        else:
            user.email = form.email.data
        identity = handler.create_identity(data)
        user.identities.add(identity)
        user.secondary_emails |= handler.get_all_emails(form) - {user.email}
        user.favorite_users.add(user)
        db.session.add(user)
        minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
        timezone = session.timezone
        if timezone == 'LOCAL':
            timezone = Config.getInstance().getDefaultTimezone()
        user.settings.set('timezone', timezone)
        user.settings.set('lang', session.lang or minfo.getLang())
        handler.update_user(user, form)
        db.session.flush()

        # notify everyone of user creation
        signals.users.registered.send(user)

        login_user(user, identity)
        msg = _('You have sucessfully registered your Indico profile. '
                'Check <a href="{url}">your profile</a> for further details and settings.')
        flash(Markup(msg).format(url=url_for('users.user_profile')), 'success')
        db.session.flush()
        return handler.redirect_success()
コード例 #38
0
ファイル: controllers.py プロジェクト: dbourillot/indico
    def _create_user(self, form, handler, pending_user):
        data = form.data
        if pending_user:
            user = pending_user
            user.is_pending = False
        else:
            user = User()
        form.populate_obj(user, skip={'email'})
        if form.email.data in user.secondary_emails:
            # This can happen if there's a pending user who has a secondary email
            # for some weird reason which should now become the primary email...
            user.make_email_primary(form.email.data)
        else:
            user.email = form.email.data
        identity = handler.create_identity(data)
        user.identities.add(identity)
        user.secondary_emails |= handler.get_all_emails(form) - {user.email}
        user.favorite_users.add(user)
        db.session.add(user)
        minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
        timezone = session.timezone
        if timezone == 'LOCAL':
            timezone = Config.getInstance().getDefaultTimezone()
        user.settings.set('timezone', timezone)
        user.settings.set('lang', session.lang or minfo.getLang())
        handler.update_user(user, form)
        db.session.flush()

        # notify everyone of user creation
        signals.users.registered.send(user)

        login_user(user, identity)
        msg = _('You have sucessfully registered your Indico profile. '
                'Check <a href="{url}">your profile</a> for further details and settings.')
        flash(Markup(msg).format(url=url_for('users.user_profile')), 'success')
        db.session.flush()
        return handler.redirect_success()
コード例 #39
0
ファイル: badge.py プロジェクト: OmeGak/indico
 def __init__(self, conference):
     if conference.getId() == "default":
         #Best values for CERN printing service
         self.__topMargin = 1.6
         self.__bottomMargin = 1.1
         self.__leftMargin = 1.6
         self.__rightMargin = 1.4
         self.__marginColumns = 1.0
         self.__marginRows = 0.0
         self._pageSize = "A4"
         self._landscape = False
         self._drawDashedRectangles = True
     else:
         defaultConferencePDFOptions = (HelperMaKaCInfo.getMaKaCInfoInstance().getDefaultConference()
                                        .getBadgeTemplateManager().getPDFOptions())
         self.__topMargin = defaultConferencePDFOptions.getTopMargin()
         self.__bottomMargin = defaultConferencePDFOptions.getBottomMargin()
         self.__leftMargin = defaultConferencePDFOptions.getLeftMargin()
         self.__rightMargin = defaultConferencePDFOptions.getRightMargin()
         self.__marginColumns = defaultConferencePDFOptions.getMarginColumns()
         self.__marginRows = defaultConferencePDFOptions.getMarginRows()
         self._pageSize = defaultConferencePDFOptions.getPagesize()
         self._landscape = defaultConferencePDFOptions.getLandscape()
         self._drawDashedRectangles = defaultConferencePDFOptions.getDrawDashedRectangles()
コード例 #40
0
ファイル: assets.py プロジェクト: ferhatelmas/indico
 def unique(self):
     # We cannot have self.env available here so we take the debug flag from makacinfo instead.
     debug = HelperMaKaCInfo.getMaKaCInfoInstance().isDebugActive()
     return self.name, self.required_level, debug
コード例 #41
0
def utc_to_server(dt):
    """Converts the given UTC datetime to the server's TZ."""
    server_tz = get_timezone(
        HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone())
    return dt.astimezone(server_tz)
コード例 #42
0
ファイル: admins.py プロジェクト: belokop/indico_bare
 def _checkParams(self, params):
     RHProtected._checkParams(self, params)
     self._minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
コード例 #43
0
ファイル: legacy.py プロジェクト: marcosmolla/indico
 def getTimezone(self):
     return self.user.settings.get('timezone', HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone())
コード例 #44
0
ファイル: admins.py プロジェクト: stomanin/indico
 def _checkParams(self, params):
     RHProtected._checkParams(self, params)
     self._minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
コード例 #45
0
ファイル: legacy.py プロジェクト: marcosmolla/indico
 def getTimezone(self):
     return self.user.settings.get(
         'timezone',
         HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone())
コード例 #46
0
ファイル: date_time.py プロジェクト: sofian86/indico-gh-test
def utc_to_server(dt):
    """Converts the given UTC datetime to the server's TZ."""
    server_tz = get_timezone(HelperMaKaCInfo.getMaKaCInfoInstance().getTimezone())
    return dt.astimezone(server_tz)
コード例 #47
0
ファイル: wrappers.py プロジェクト: Ictp/indico
 def debug(self):
     with DBMgr.getInstance().global_connection():
         return HelperMaKaCInfo.getMaKaCInfoInstance().isDebugActive()
コード例 #48
0
ファイル: legacy.py プロジェクト: belokop/indico_bare
 def getLang(self):
     return self.user.settings.get('lang') if self.user else HelperMaKaCInfo.getMaKaCInfoInstance().getLang()
コード例 #49
0
ファイル: conference.py プロジェクト: hennogous/indico
 def _handleSet(self):
     styleMgr = HelperMaKaCInfo.getMaKaCInfoInstance().getStyleManager()
     if self._value == styleMgr.getDefaultStyleForEventType(self._conf.getType()):
         layout_settings.delete(self._conf, 'timetable_theme')
     else:
         layout_settings.set(self._conf, 'timetable_theme', self._value)
コード例 #50
0
ファイル: epayments.py プロジェクト: lukasnellen/indico
    def _getSectionsHTML(self):
        modPay = self._conf.getModPay()
        html = []
        enabledBulb = Configuration.Config.getInstance().getSystemIconURL(
            "enabledSection")
        notEnabledBulb = Configuration.Config.getInstance().getSystemIconURL(
            "disabledSection")
        enabledText = _("Click to disable")
        disabledText = _("Click to enable")
        for gs in modPay.getSortedModPay():

            urlStatus = urlHandlers.UHConfModifEPaymentEnableSection.getURL(
                self._conf)
            urlStatus.addParam("epayment", gs.getId())
            urlModif = gs.getConfModifEPaymentURL(self._conf)
            img = enabledBulb
            text = enabledText
            if not gs.isEnabled():
                img = notEnabledBulb
                text = disabledText

            # CERN Plugin: Just admins can see and modify it
            if gs.getId() == "CERNYellowPay":
                minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
                al = minfo.getAdminList()
                if not al.isAdmin(self._user):
                    from MaKaC.plugins.EPayment.CERNYellowPay.options import globalOptions
                    endis = "enable"
                    departmentName = globalOptions[1][1]["defaultValue"]
                    emailAddress = globalOptions[0][1]["defaultValue"]
                    if gs.isEnabled():
                        endis = "disable"
                        emailAddress = minfo.getSupportEmail()
                        departmentName = "Indico support"
                    html.insert(
                        0, """
                        <tr>
                        <td>
                            <img src=%s alt="%s" class="imglink">&nbsp;&nbsp;<b>CERN E-Payment</b> <small>
                            (please, contact <a href="mailto:%s?subject=Indico Epayment - Conference ID: %s">%s</a> to %s 
                            the CERN e-payment module)</small>
                        </td>
                        </tr>
                        """ % (img, text, emailAddress, self._conf.getId(),
                               departmentName, endis))
                    continue
            #################################################

            selbox = ""
            html.append("""
                        <tr>
                        <td>
                            <a href=%s><img src=%s alt="%s" class="imglink"></a>&nbsp;%s&nbsp;<a href=%s>%s</a>
                        </td>
                        </tr>
                        """ % (quoteattr(str(urlStatus)), img, text, selbox,
                               quoteattr(str(urlModif)), gs.getTitle()))
        html.insert(
            0,
            """<a href="" name="sections"></a><input type="hidden" name="oldpos"><table align="left">"""
        )
        html.append("</table>")
        return "".join(html)
コード例 #51
0
ファイル: legacy.py プロジェクト: stomanin/indico
 def getLang(self):
     return self.user.settings.get(
         'lang') if self.user else HelperMaKaCInfo.getMaKaCInfoInstance(
         ).getLang()