Esempio n. 1
0
 def instance(cls):
     if cls._instance is None:
         # Call startup() to fill UserProfiles also in a
         # multi-threaded environment:
         settings.SITE.startup()
         cls._instance = AnonymousUser()
         from lino.modlib.users.choicelists import UserProfiles
         cls._instance.profile = UserProfiles.get_by_value(
             settings.SITE.anonymous_user_profile, None)
         if cls._instance.profile is None:
             raise Exception(
                 "Invalid value %r for `SITE.anonymous_user_profile`. "
                 "Must be one of %s" % (
                     settings.SITE.anonymous_user_profile,
                     [i.value for i in UserProfiles.items()]))
     return cls._instance
Esempio n. 2
0
 def setup_user_profiles(self):
     """
     Defines application-specific default user profiles.
     Local site administrators can override this in their :xfile:.
     """
     from lino.modlib.users.choicelists import UserProfiles
     from django.utils.translation import ugettext_lazy as _
     UserProfiles.reset('* office accounts')
     add = UserProfiles.add_item
     add('000',
         _("Anonymous"),
         '_ _ _',
         'anonymous',
         readonly=True,
         authenticated=False)
     add('100', _("User"), 'U U U', 'user')
     add('900', _("Administrator"), 'A A A', 'admin')
Esempio n. 3
0
    def get_user_profiles(cls):
        """Yield a series of all user profiles on this site which satisfy this
        role.

        """
        from lino.modlib.users.choicelists import UserProfiles
        for p in UserProfiles.items():
            if p.has_required_roles([cls]):
                yield p
Esempio n. 4
0
File: diag.py Progetto: sandeez/lino
def visible_for(ba):
    """Shows a list of user profiles for which this action is visible."""
    if ba is None:
        return "N/A"
    visible = []
    hidden = []
    for p in UserProfiles.objects():
        name = p.name or p.value
        if ba.get_view_permission(p):
            visible.append(name)
        else:
            hidden.append(name)
    if len(hidden) == 0:
        return "all"
    if len(visible) == 0:
        return "nobody"
    # if len(hidden) < len(visible):
    #     return "all except %s" % ', '.join(hidden)
    return ' '.join(visible)
Esempio n. 5
0
File: diag.py Progetto: DarioGT/lino
def visible_for(ba):
    """Shows a list of user profiles for which this action is visible."""
    if ba is None:
        return "N/A"
    visible = []
    hidden = []
    for p in UserProfiles.objects():
        name = p.name or p.value
        if ba.get_view_permission(p):
            visible.append(name)
        else:
            hidden.append(name)
    if len(hidden) == 0:
        return "all"
    if len(visible) == 0:
        return "nobody"
    # if len(hidden) < len(visible):
    #     return "all except %s" % ', '.join(hidden)
    return ' '.join(visible)
Esempio n. 6
0
e.g.  :mod:`lino.projects.polly`.
"""

from django.utils.translation import ugettext_lazy as _
from lino.core.roles import UserRole, SiteUser, SiteAdmin


class PollsUser(SiteUser):
    """A user who has access to polls functionality.

    """


class PollsStaff(PollsUser):
    """A user who manages configuration of polls functionality.

    """


class PollsAdmin(PollsStaff, SiteAdmin):
    pass


from lino.modlib.users.choicelists import UserProfiles

UserProfiles.clear()
add = UserProfiles.add_item
add('000', _("Anonymous"), UserRole, name='anonymous', readonly=True)
add('100', _("User"), PollsUser, name='user')
add('900', _("Administrator"), PollsAdmin, name='admin')
Esempio n. 7
0
    #~ def setup_handle(self,lh):
        #~ lh.config.label = _("Site Parameters")
        #~ lh.about.label = _("About")

class SiteConfigs(dd.Table):

    """
    The table used to present the :class:`SiteConfig` row in a Detail form.
    See also :meth:`lino.Lino.get_site_config`.
    Deserves more documentation.
    """
    model = 'system.SiteConfig'
    required_roles = dd.required(SiteStaff)
    default_action = actions.ShowDetailAction()
    #~ has_navigator = False
    hide_top_toolbar = True
    #~ can_delete = perms.never
    detail_layout = """
    default_build_method
    # lino.ModelsBySite
    """

    do_build = BuildSiteCache()


if settings.SITE.user_model == 'auth.User':
    dd.inject_field(settings.SITE.user_model,
                    'profile', UserProfiles.field())
    dd.inject_field(settings.SITE.user_model, 'language', dd.LanguageField())

Esempio n. 8
0
    #~ def setup_handle(self,lh):
        #~ lh.config.label = _("Site Parameters")
        #~ lh.about.label = _("About")

class SiteConfigs(dd.Table):

    """
    The table used to present the :class:`SiteConfig` row in a Detail form.
    See also :meth:`lino.Lino.get_site_config`.
    Deserves more documentation.
    """
    model = 'system.SiteConfig'
    required_roles = dd.required(SiteStaff)
    default_action = actions.ShowDetailAction()
    #~ has_navigator = False
    hide_top_toolbar = True
    #~ can_delete = perms.never
    detail_layout = """
    default_build_method
    # lino.ModelsBySite
    """

    do_build = BuildSiteCache()


if settings.SITE.user_model == 'auth.User':
    dd.inject_field(settings.SITE.user_model,
                    'profile', UserProfiles.field())
    dd.inject_field(settings.SITE.user_model, 'language', dd.LanguageField())

Esempio n. 9
0
"""

from django.utils.translation import ugettext_lazy as _
from lino.core.roles import UserRole, SiteUser, SiteAdmin


class PollsUser(SiteUser):
    """A user who has access to polls functionality.

    """


class PollsStaff(PollsUser):
    """A user who manages configuration of polls functionality.

    """


class PollsAdmin(PollsStaff, SiteAdmin):
    pass


from lino.modlib.users.choicelists import UserProfiles


UserProfiles.clear()
add = UserProfiles.add_item
add('000', _("Anonymous"), UserRole, name='anonymous', readonly=True)
add('100', _("User"), PollsUser, name='user')
add('900', _("Administrator"), PollsAdmin, name='admin')