예제 #1
0
파일: admins.py 프로젝트: k3njiy/indico
 def getVars( self ):
     vars = wcomponents.WTemplated.getVars( self )
     minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
     vars["title"] = minfo.getTitle()
     vars["organisation"] = minfo.getOrganisation()
     vars['supportEmail'] = Config.getInstance().getSupportEmail()
     vars['publicSupportEmail'] = Config.getInstance().getPublicSupportEmail()
     vars['noReplyEmail'] = Config.getInstance().getNoReplyEmail()
     vars["lang"] = minfo.getLang()
     vars["address"] = ""
     if minfo.getCity() != "":
         vars["address"] = minfo.getCity()
     if minfo.getCountry() != "":
         if vars["address"] != "":
             vars["address"] = "%s (%s)"%(vars["address"], minfo.getCountry())
         else:
             vars["address"] = "%s"%minfo.getCountry()
     vars["timezone"] = Config.getInstance().getDefaultTimezone()
     vars["systemIconAdmins"] = Config.getInstance().getSystemIconURL( "admin" )
     iconDisabled = str(Config.getInstance().getSystemIconURL( "disabledSection" ))
     iconEnabled = str(Config.getInstance().getSystemIconURL( "enabledSection" ))
     url = urlHandlers.UHAdminSwitchNewsActive.getURL()
     icon = iconEnabled if minfo.isNewsActive() else iconDisabled
     vars["features"] = i18nformat("""<a href="%s"><img src="%s" border="0" style="float:left; padding-right: 5px">_("News Pages")</a>""") % (url, icon)
     vars["administrators"] = fossilize(sorted([u.as_avatar for u in User.find(is_admin=True, is_deleted=False)],
                                               key=methodcaller('getStraightFullName')))
     return vars
예제 #2
0
파일: admin.py 프로젝트: OmeGak/indico
def user_create(grant_admin):
    """Creates new user"""
    update_session_options(db)
    user_type = 'user' if not grant_admin else 'admin'
    while True:
        email = prompt_email()
        if email is None:
            return
        email = email.lower()
        if not User.find(User.all_emails.contains(email), ~User.is_deleted, ~User.is_pending).count():
            break
        error('Email already exists')
    first_name = prompt("First name")
    last_name = prompt("Last name")
    affiliation = prompt("Affiliation", '')
    print()
    while True:
        username = prompt("Enter username").lower()
        if not Identity.find(provider='indico', identifier=username).count():
            break
        error('Username already exists')
    password = prompt_pass()
    if password is None:
        return

    identity = Identity(provider='indico', identifier=username, password=password)
    user = create_user(email, {'first_name': to_unicode(first_name), 'last_name': to_unicode(last_name),
                               'affiliation': to_unicode(affiliation)}, identity)
    user.is_admin = grant_admin
    print_user_info(user)

    if prompt_bool(cformat("%{yellow}Create the new {}?").format(user_type), default=True):
        db.session.add(user)
        db.session.commit()
        success("New {} created successfully with ID: {}".format(user_type, user.id))
예제 #3
0
파일: controllers.py 프로젝트: fph/indico
    def _process(self):
        form = SearchForm(obj=FormDefaults(exact=True))
        form_data = form.data
        search_results = None
        num_of_users = User.query.count()
        num_deleted_users = User.find(is_deleted=True).count()

        if form.validate_on_submit():
            search_results = []
            exact = form_data.pop('exact')
            include_deleted = form_data.pop('include_deleted')
            include_pending = form_data.pop('include_pending')
            external = form_data.pop('external')
            form_data = {k: v for (k, v) in form_data.iteritems() if v and v.strip()}
            matches = search_users(exact=exact, include_deleted=include_deleted,
                                   include_pending=include_pending, external=external, **form_data)
            for entry in matches:
                if isinstance(entry, User):
                    search_results.append(UserEntry(
                        profile_url=url_for('.user_profile', entry),
                        **{k: getattr(entry, k) for k in IDENTITY_ATTRIBUTES}
                    ))
                else:
                    search_results.append(UserEntry(
                        profile_url=None,
                        full_name="{first_name} {last_name}".format(**entry.data.to_dict()),
                        **{k: entry.data.get(k) for k in (IDENTITY_ATTRIBUTES - {'full_name'})}
                    ))
            search_results.sort(key=attrgetter('first_name', 'last_name'))

        num_reg_requests = RegistrationRequest.query.count()
        return WPUsersAdmin.render_template('users_admin.html', form=form, search_results=search_results,
                                            num_of_users=num_of_users, num_deleted_users=num_deleted_users,
                                            num_reg_requests=num_reg_requests)
예제 #4
0
def user_create(grant_admin):
    """Creates new user"""
    user_type = 'user' if not grant_admin else 'admin'
    while True:
        email = prompt_email()
        if email is None:
            return
        email = email.lower()
        if not User.find(User.all_emails.contains(email), ~User.is_deleted, ~User.is_pending).count():
            break
        print(cformat('%{red}Email already exists'))
    first_name = click.prompt("First name").strip()
    last_name = click.prompt("Last name").strip()
    affiliation = click.prompt("Affiliation", '').strip()
    print()
    while True:
        username = click.prompt("Enter username").lower().strip()
        if not Identity.find(provider='indico', identifier=username).count():
            break
        print(cformat('%{red}Username already exists'))
    password = prompt_pass()
    if password is None:
        return

    identity = Identity(provider='indico', identifier=username, password=password)
    user = create_user(email, {'first_name': to_unicode(first_name), 'last_name': to_unicode(last_name),
                               'affiliation': to_unicode(affiliation)}, identity)
    user.is_admin = grant_admin
    _print_user_info(user)

    if click.confirm(cformat("%{yellow}Create the new {}?").format(user_type), default=True):
        db.session.add(user)
        db.session.commit()
        print(cformat("%{green}New {} created successfully with ID: %{green!}{}").format(user_type, user.id))
예제 #5
0
    def _process(self):
        form = SearchForm(obj=FormDefaults(exact=True))
        form_data = form.data
        search_results = None
        num_of_users = User.query.count()
        num_deleted_users = User.find(is_deleted=True).count()

        if form.validate_on_submit():
            search_results = []
            exact = form_data.pop('exact')
            include_deleted = form_data.pop('include_deleted')
            include_pending = form_data.pop('include_pending')
            external = form_data.pop('external')
            form_data = {k: v for (k, v) in form_data.iteritems() if v and v.strip()}
            matches = search_users(exact=exact, include_deleted=include_deleted,
                                   include_pending=include_pending, external=external, **form_data)
            for entry in matches:
                if isinstance(entry, User):
                    search_results.append(UserEntry(
                        profile_url=url_for('.user_profile', entry),
                        **{k: getattr(entry, k) for k in IDENTITY_ATTRIBUTES}
                    ))
                else:
                    search_results.append(UserEntry(
                        profile_url=None,
                        full_name="{first_name} {last_name}".format(**entry.data.to_dict()),
                        **{k: entry.data.get(k) for k in (IDENTITY_ATTRIBUTES - {'full_name'})}
                    ))
            search_results.sort(key=attrgetter('first_name', 'last_name'))

        num_reg_requests = RegistrationRequest.query.count()
        return WPUsersAdmin.render_template('users_admin.html', form=form, search_results=search_results,
                                            num_of_users=num_of_users, num_deleted_users=num_deleted_users,
                                            num_reg_requests=num_reg_requests)
예제 #6
0
파일: admins.py 프로젝트: florv/indico
 def getVars(self):
     wvars = wcomponents.WTemplated.getVars(self)
     minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
     wvars['title'] = minfo.getTitle()
     wvars['organisation'] = minfo.getOrganisation()
     wvars['supportEmail'] = Config.getInstance().getSupportEmail()
     wvars['publicSupportEmail'] = Config.getInstance().getPublicSupportEmail()
     wvars['noReplyEmail'] = Config.getInstance().getNoReplyEmail()
     wvars['lang'] = minfo.getLang()
     wvars['address'] = ''
     if minfo.getCity() != '':
         wvars['address'] = minfo.getCity()
     if minfo.getCountry() != '':
         if wvars['address'] != '':
             wvars['address'] = '{0} ({1})'.format(wvars['address'], minfo.getCountry())
         else:
             wvars['address'] = minfo.getCountry()
     wvars['timezone'] = Config.getInstance().getDefaultTimezone()
     wvars['systemIconAdmins'] = Config.getInstance().getSystemIconURL('admin')
     iconDisabled = str(Config.getInstance().getSystemIconURL('disabledSection'))
     iconEnabled = str(Config.getInstance().getSystemIconURL('enabledSection'))
     url = urlHandlers.UHAdminSwitchNewsActive.getURL()
     icon = iconEnabled if minfo.isNewsActive() else iconDisabled
     wvars['features'] = i18nformat('<a href="{}"><img src="{}" border="0"'
                                    'style="float:left; padding-right: 5px">_("News Pages")</a>').format(url, icon)
     wvars['administrators'] = fossilize(sorted([u.as_avatar for u in User.find(is_admin=True, is_deleted=False)],
                                                key=methodcaller('getStraightFullName')))
     wvars['tracker_url'] = urljoin(Config.getInstance().getTrackerURL(),
                                    'api/instance/{}'.format(cephalopod_settings.get('uuid')))
     wvars['cephalopod_data'] = {'enabled': cephalopod_settings.get('joined'),
                                 'contact': cephalopod_settings.get('contact_name'),
                                 'email': cephalopod_settings.get('contact_email'),
                                 'url': Config.getInstance().getBaseURL(),
                                 'organisation': minfo.getOrganisation()}
     return wvars
예제 #7
0
 def getVars(self):
     wvars = wcomponents.WTemplated.getVars(self)
     minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
     wvars['title'] = minfo.getTitle()
     wvars['organisation'] = minfo.getOrganisation()
     wvars['supportEmail'] = Config.getInstance().getSupportEmail()
     wvars['publicSupportEmail'] = Config.getInstance().getPublicSupportEmail()
     wvars['noReplyEmail'] = Config.getInstance().getNoReplyEmail()
     wvars['lang'] = Config.getInstance().getDefaultLocale()
     wvars['address'] = ''
     if minfo.getCity() != '':
         wvars['address'] = minfo.getCity()
     if minfo.getCountry() != '':
         if wvars['address'] != '':
             wvars['address'] = '{0} ({1})'.format(wvars['address'], minfo.getCountry())
         else:
             wvars['address'] = minfo.getCountry()
     wvars['timezone'] = Config.getInstance().getDefaultTimezone()
     wvars['systemIconAdmins'] = Config.getInstance().getSystemIconURL('admin')
     wvars['administrators'] = fossilize(sorted([u.as_avatar for u in User.find(is_admin=True, is_deleted=False)],
                                                key=methodcaller('getStraightFullName')))
     wvars['tracker_url'] = urljoin(Config.getInstance().getTrackerURL(),
                                    'api/instance/{}'.format(cephalopod_settings.get('uuid')))
     wvars['cephalopod_data'] = {'enabled': cephalopod_settings.get('joined'),
                                 'contact': cephalopod_settings.get('contact_name'),
                                 'email': cephalopod_settings.get('contact_email'),
                                 'url': Config.getInstance().getBaseURL(),
                                 'organisation': minfo.getOrganisation()}
     return wvars
예제 #8
0
파일: admin.py 프로젝트: OmeGak/indico
 def _getAnswer(self):
     for fossil in self._userList:
         user = User.get(int(fossil['id']))
         if user is not None:
             user.is_admin = True
     admins = User.find(is_admin=True, is_deleted=False).order_by(User.first_name, User.last_name).all()
     return fossilize([u.as_avatar for u in admins])
예제 #9
0
파일: user.py 프로젝트: DirkHoffmann/indico
def create(grant_admin):
    """Creates a new user"""
    user_type = 'user' if not grant_admin else 'admin'
    while True:
        email = prompt_email()
        if email is None:
            return
        email = email.lower()
        if not User.find(User.all_emails.contains(email), ~User.is_deleted, ~User.is_pending).count():
            break
        print(cformat('%{red}Email already exists'))
    first_name = click.prompt("First name").strip()
    last_name = click.prompt("Last name").strip()
    affiliation = click.prompt("Affiliation", '').strip()
    print()
    while True:
        username = click.prompt("Enter username").lower().strip()
        if not Identity.find(provider='indico', identifier=username).count():
            break
        print(cformat('%{red}Username already exists'))
    password = prompt_pass()
    if password is None:
        return

    identity = Identity(provider='indico', identifier=username, password=password)
    user = create_user(email, {'first_name': to_unicode(first_name), 'last_name': to_unicode(last_name),
                               'affiliation': to_unicode(affiliation)}, identity)
    user.is_admin = grant_admin
    _print_user_info(user)

    if click.confirm(cformat("%{yellow}Create the new {}?").format(user_type), default=True):
        db.session.add(user)
        db.session.commit()
        print(cformat("%{green}New {} created successfully with ID: %{green!}{}").format(user_type, user.id))
예제 #10
0
 def _getAnswer(self):
     user = User.get(self._userId)
     if user is not None:
         user.is_admin = False
     admins = User.find(is_admin=True,
                        is_deleted=False).order_by(User.first_name,
                                                   User.last_name).all()
     return fossilize([u.as_avatar for u in admins])
예제 #11
0
 def migrate_favorite_users(self):
     print cformat('%{white!}migrating favorite users')
     for avatars in grouper(self._iter_avatars_with_favorite_users(), 2500, skip_missing=True):
         avatars = list(avatars)
         users = {u.id: u for u in User.find(User.id.in_(int(a.id) for a, _ in avatars))}
         for avatar, user_ids in committing_iterator(avatars, 1000):
             user = users.get(int(avatar.id))
             if user is None:
                 print cformat('%{red!}!!!%{reset} '
                               '%{yellow!}User {} does not exist').format(avatar.id)
                 continue
             print cformat('%{green}+++%{reset} '
                           '%{white!}{:6d}%{reset} %{cyan}{}%{reset}').format(user.id, user.full_name)
             valid_users = {u.id: u for u in User.find(User.id.in_(user_ids))}
             for user_id in user_ids:
                 target = valid_users.get(user_id)
                 if target is None:
                     print cformat('%{yellow!}!!!%{reset} '
                                   '%{yellow!}User {} does not exist').format(user_id)
                     continue
                 user.favorite_users.add(target)
                 print cformat('%{blue!}<->%{reset} '
                               '%{white!}{:6d}%{reset} %{cyan}{}%{reset}').format(target.id, target.full_name)
예제 #12
0
    def migrate_links(self):
        print cformat('%{white!}migrating links')
        for avatars in grouper(self._iter_avatars(), 2500, skip_missing=True):
            avatars = {int(a.id): a for a in avatars}
            users = ((u, avatars[u.id])
                     for u in User.find(User.id.in_(avatars)))

            for user, avatar in committing_iterator(
                    self.flushing_iterator(users, 250), 2500):
                registrants = set()
                user_shown = False
                for type_, entries in avatar.linkedTo.iteritems():
                    # store registrant roles, in order to avoid duplication below
                    for role, objects in entries.iteritems():
                        if (type_ == 'category'
                                and role == 'favorite') or type_ == 'group':
                            continue
                        if not objects:
                            continue
                        if type_ == 'registration' and role == 'registrant':
                            registrants |= set(objects)
                        if not user_shown:
                            print cformat(
                                '%{green}+++%{reset} '
                                '%{white!}{:6d}%{reset} %{cyan}{}%{reset}'
                            ).format(user.id, user.full_name)
                            user_shown = True
                        print cformat(
                            '%{blue!}<->%{reset}        '
                            '%{yellow!}{:4d}%{reset}x  %{green!}{:12}  %{cyan!}{}%{reset}'
                        ).format(len(objects), type_, role)
                        for obj in objects:
                            try:
                                UserLink.create_link(user, obj, role, type_)
                            except Exception as e:
                                print cformat(
                                    '%{red!}!!!%{reset}        '
                                    '%{red!}linking failed%{reset} (%{yellow!}{}%{reset}): '
                                    '{}').format(unicode(e), obj)

                # add old "registrant" entries to registration/registrant
                for reg in getattr(avatar, 'registrants', {}).itervalues():
                    if reg.getConference().getOwner(
                    ) and reg not in registrants:
                        UserLink.create_link(user, reg, 'registrant',
                                             'registration')
                        print cformat(
                            '%{cyan!}<->%{reset}        '
                            '%{yellow!}   1%{reset}x  %{green!}{:12}  %{cyan!}{}%{reset}'
                        ).format('registration', 'registrant')
예제 #13
0
파일: admins.py 프로젝트: belokop/indico
 def getVars(self):
     wvars = wcomponents.WTemplated.getVars(self)
     minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
     wvars['title'] = minfo.getTitle()
     wvars['organisation'] = minfo.getOrganisation()
     wvars['supportEmail'] = Config.getInstance().getSupportEmail()
     wvars['publicSupportEmail'] = Config.getInstance(
     ).getPublicSupportEmail()
     wvars['noReplyEmail'] = Config.getInstance().getNoReplyEmail()
     wvars['lang'] = minfo.getLang()
     wvars['address'] = ''
     if minfo.getCity() != '':
         wvars['address'] = minfo.getCity()
     if minfo.getCountry() != '':
         if wvars['address'] != '':
             wvars['address'] = '{0} ({1})'.format(wvars['address'],
                                                   minfo.getCountry())
         else:
             wvars['address'] = minfo.getCountry()
     wvars['timezone'] = Config.getInstance().getDefaultTimezone()
     wvars['systemIconAdmins'] = Config.getInstance().getSystemIconURL(
         'admin')
     iconDisabled = str(
         Config.getInstance().getSystemIconURL('disabledSection'))
     iconEnabled = str(
         Config.getInstance().getSystemIconURL('enabledSection'))
     url = urlHandlers.UHAdminSwitchNewsActive.getURL()
     icon = iconEnabled if minfo.isNewsActive() else iconDisabled
     wvars['features'] = i18nformat(
         '<a href="{}"><img src="{}" border="0"'
         'style="float:left; padding-right: 5px">_("News Pages")</a>'
     ).format(url, icon)
     wvars['administrators'] = fossilize(
         sorted([
             u.as_avatar for u in User.find(is_admin=True, is_deleted=False)
         ],
                key=methodcaller('getStraightFullName')))
     wvars['tracker_url'] = urljoin(
         Config.getInstance().getTrackerURL(),
         'api/instance/{}'.format(cephalopod_settings.get('uuid')))
     wvars['cephalopod_data'] = {
         'enabled': cephalopod_settings.get('joined'),
         'contact': cephalopod_settings.get('contact_name'),
         'email': cephalopod_settings.get('contact_email'),
         'url': Config.getInstance().getBaseURL(),
         'organisation': minfo.getOrganisation()
     }
     return wvars
예제 #14
0
 def migrate_favorite_users(self):
     users = {u.id: u for u in User.find(User.id.in_(set(self.favorite_avatars)))}
     for user_id, avatars in self.favorite_avatars.viewitems():
         user = users[user_id]
         self.print_success('%[white!]{:6d}%[reset] %[cyan]{}%[reset]'.format(user_id, user.full_name))
         for avatar_id in avatars:
             fav_user = self.global_ns.avatar_merged_user.get(avatar_id)
             if not fav_user:
                 self.print_warning('User not found: {} (in {})'.format(avatar_id, user_id))
                 continue
             user.favorite_users.add(fav_user)
             self.print_info(u'%[blue!]F%[reset] %[white!]{:6d}%[reset] %[cyan]{}%[reset]'
                             .format(fav_user.id, fav_user.full_name))
         # add the user to his/her own favorites
         user.favorite_users.add(user)
     db.session.flush()
예제 #15
0
    def _process(self):
        form = SearchForm(obj=FormDefaults(exact=True))
        form_data = form.data
        search_results = None
        num_of_users = User.query.count()
        num_deleted_users = User.find(is_deleted=True).count()

        if form.validate_on_submit():
            search_results = []
            exact = form_data.pop('exact')
            include_deleted = form_data.pop('include_deleted')
            include_pending = form_data.pop('include_pending')
            external = form_data.pop('external')
            form_data = {k: v for (k, v) in form_data.items() if v and v.strip()}
            matches = search_users(exact=exact, include_deleted=include_deleted, include_pending=include_pending,
                                   include_blocked=True, external=external, allow_system_user=True, **form_data)
            for entry in matches:
                if isinstance(entry, User):
                    search_results.append(UserEntry(
                        avatar_url=entry.avatar_url,
                        profile_url=url_for('.user_profile', entry),
                        user=entry,
                        **{k: getattr(entry, k) for k in IDENTITY_ATTRIBUTES}
                    ))
                else:
                    if not entry.data['first_name'] and not entry.data['last_name']:
                        full_name = '<no name>'
                        initial = '?'
                    else:
                        full_name = f'{entry.data["first_name"]} {entry.data["last_name"]}'.strip()
                        initial = full_name[0]
                    search_results.append(UserEntry(
                        avatar_url=url_for('assets.avatar', name=initial),
                        profile_url=None,
                        user=None,
                        full_name=full_name,
                        **{k: entry.data.get(k) for k in (IDENTITY_ATTRIBUTES - {'full_name'})}
                    ))
            search_results.sort(key=attrgetter('full_name'))

        num_reg_requests = RegistrationRequest.query.count()
        return WPUsersAdmin.render_template('users_admin.html', 'users', form=form, search_results=search_results,
                                            num_of_users=num_of_users, num_deleted_users=num_deleted_users,
                                            num_reg_requests=num_reg_requests)
예제 #16
0
파일: users.py 프로젝트: fph/indico
    def migrate_links(self):
        print cformat('%{white!}migrating links')
        for avatars in grouper(self._iter_avatars(), 2500, skip_missing=True):
            avatars = {int(a.id): a for a in avatars}
            users = ((u, avatars[u.id]) for u in User.find(User.id.in_(avatars)))

            for user, avatar in committing_iterator(self.flushing_iterator(users, 250), 2500):
                registrants = set()
                user_shown = False
                for type_, entries in avatar.linkedTo.iteritems():
                    # store registrant roles, in order to avoid duplication below
                    for role, objects in entries.iteritems():
                        if (type_ == 'category' and role == 'favorite') or type_ == 'group':
                            continue
                        if not objects:
                            continue
                        if type_ == 'registration' and role == 'registrant':
                            registrants |= set(objects)
                        if not user_shown:
                            print cformat('%{green}+++%{reset} '
                                          '%{white!}{:6d}%{reset} %{cyan}{}%{reset}').format(user.id, user.full_name)
                            user_shown = True
                        print cformat('%{blue!}<->%{reset}        '
                                      '%{yellow!}{:4d}%{reset}x  %{green!}{:12}  %{cyan!}{}%{reset}').format(
                            len(objects), type_, role)
                        for obj in objects:
                            try:
                                UserLink.create_link(user, obj, role, type_)
                            except Exception as e:
                                print cformat('%{red!}!!!%{reset}        '
                                              '%{red!}linking failed%{reset} (%{yellow!}{}%{reset}): '
                                              '{}').format(unicode(e), obj)

                # add old "registrant" entries to registration/registrant
                for reg in getattr(avatar, 'registrants', {}).itervalues():
                    if reg.getConference().getOwner() and reg not in registrants:
                        UserLink.create_link(user, reg, 'registrant', 'registration')
                        print cformat('%{cyan!}<->%{reset}        '
                                      '%{yellow!}   1%{reset}x  %{green!}{:12}  %{cyan!}{}%{reset}').format(
                            'registration', 'registrant')
예제 #17
0
 def getVars(self):
     vars = wcomponents.WTemplated.getVars(self)
     minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance()
     vars["title"] = minfo.getTitle()
     vars["organisation"] = minfo.getOrganisation()
     vars['supportEmail'] = Config.getInstance().getSupportEmail()
     vars['publicSupportEmail'] = Config.getInstance(
     ).getPublicSupportEmail()
     vars['noReplyEmail'] = Config.getInstance().getNoReplyEmail()
     vars["lang"] = minfo.getLang()
     vars["address"] = ""
     if minfo.getCity() != "":
         vars["address"] = minfo.getCity()
     if minfo.getCountry() != "":
         if vars["address"] != "":
             vars["address"] = "%s (%s)" % (vars["address"],
                                            minfo.getCountry())
         else:
             vars["address"] = "%s" % minfo.getCountry()
     try:
         vars["timezone"] = minfo.getTimezone()
     except:
         vars["timezone"] = 'UTC'
     vars["systemIconAdmins"] = Config.getInstance().getSystemIconURL(
         "admin")
     iconDisabled = str(
         Config.getInstance().getSystemIconURL("disabledSection"))
     iconEnabled = str(
         Config.getInstance().getSystemIconURL("enabledSection"))
     url = urlHandlers.UHAdminSwitchNewsActive.getURL()
     icon = iconEnabled if minfo.isNewsActive() else iconDisabled
     vars["features"] = i18nformat(
         """<a href="%s"><img src="%s" border="0" style="float:left; padding-right: 5px">_("News Pages")</a>"""
     ) % (url, icon)
     vars["administrators"] = fossilize(
         [u.as_avatar for u in User.find(is_admin=True)])
     return vars
예제 #18
0
파일: util.py 프로젝트: DavidAndreev/indico
def get_admin_emails():
    """Get the email addresses of all Indico admins"""
    return {u.email for u in User.find(is_admin=True, is_deleted=False)}
예제 #19
0
 def _getAnswer(self):
     for fossil in self._userList:
         user = User.get(int(fossil['id']))
         if user is not None:
             user.is_admin = True
     return fossilize([u.as_avatar for u in User.find(is_admin=True)])
예제 #20
0
def _count_users():
    return User.find(is_deleted=False, is_pending=False).count()
예제 #21
0
 def _getAnswer(self):
     for fossil in self._userList:
         user = User.get(int(fossil['id']))
         if user is not None:
             user.is_admin = True
     return fossilize([u.as_avatar for u in User.find(is_admin=True)])
예제 #22
0
 def has_data(self):
     return bool(User.find().count())
예제 #23
0
 def _getAnswer(self):
     user = User.get(self._userId)
     if user is not None:
         user.is_admin = False
     return fossilize([u.as_avatar for u in User.find(is_admin=True)])
예제 #24
0
파일: util.py 프로젝트: DirkHoffmann/indico
def get_admin_emails():
    """Get the email addresses of all Indico admins"""
    return {u.email for u in User.find(is_admin=True, is_deleted=False)}
예제 #25
0
 def _getAnswer(self):
     user = User.get(self._userId)
     if user is not None:
         user.is_admin = False
     return fossilize([u.as_avatar for u in User.find(is_admin=True)])
예제 #26
0
파일: display.py 프로젝트: OmeGak/indico
 def _count_users(self):
     return User.find(is_deleted=False, is_pending=False).count()