コード例 #1
0
    def validate(self, options):
        """ Validate the received data
        """
        if not options:
            self._add_statusmessage(
                _(u'There was an error to look up a user'),
                'error',
            )
            return False

        if not self._check_mailhost():
            self._add_statusmessage(
                _(u'No mailhost defined. contact site Administrator.'),
                'error')
            return False

        if not options.get('email'):
            self._add_statusmessage(_(
                u'no_email_for_user',
                default='For the user ${user} exist no email address',
                mapping=dict(user=options.get('username'))),
                'error',
            )
            return False
        return True
コード例 #2
0
    def delete(self):
        """Delete groups"""

        groupids = self.request.get('groupids', [])
        groupids = isinstance(groupids, list) and groupids or [groupids]

        try:
            getToolByName(self, 'portal_groups').removeGroups(groupids)
        except KeyError:
            IStatusMessage(self.request).addStatusMessage(
                _(u'There was an error while deleting a group.'), type="error")
            return

        IStatusMessage(self.request).addStatusMessage(
            _(u'Group(s) deleted.'), type="info")
コード例 #3
0
    def get_tabs(self):
        """Returns a list of dicts containing the tabs definitions"""

        translate = self.context.translate
        return [
            {
                'id': 'users_management',
                'class': '',
                'description': translate(
                    _('msg_usersDescription',
                      default='Users-management')),
            },

            {
                'id': 'groups_management',
                'class': '',
                'description': translate(
                    _('msg_groupsDescription',
                      default='Groups-management')),
            }]
コード例 #4
0
    def delete(self):
        """delete users"""
        userids = self.request.get('userids', [])
        mtool = getToolByName(self, 'portal_membership')
        mtool.deleteMembers(
            userids,
            delete_memberareas=1,
            delete_localroles=0,
            REQUEST=self.request,
            )

        IStatusMessage(self.request).addStatusMessage(
            _(u'text_user_deleted'), type="info")
コード例 #5
0
    def validate_group(self, group_id):
        """ Validates the input
        """
        registration = getToolByName(self.context, 'portal_registration')
        no_errors = True

        # check if group_id is allowed
        if not registration.isMemberIdAllowed(group_id):
            msg = _(u"The group id you selected is already"
                "in use or is not valid. Please choose another.")
            self._add_statusmessage(msg, "error")
            no_errors = False

        return no_errors
コード例 #6
0
    def create_group(self, group_id, group_title):
        """Creates a new group
        """
        gtool = getToolByName(self.context, 'portal_groups')

        if not self.validate_group(group_id):
            return False

        data = dict(title=group_title or group_id)
        gtool.addGroup(group_id, **data)

        self._add_statusmessage(_(u'text_group_created'), "info")

        return True
コード例 #7
0
ファイル: users.py プロジェクト: 4teamwork/ftw.usermanagement
    def columns(self):
        base_columns = (
            {'column': 'counter',
             'column_title': _(u'label_nr', default='Nr.'),
             },
            {'transform': checkbox},
            {'column': 'name',
             'column_title': _(u'label_name', default='Name'),
             'transform': userpreflink},
            {'column': 'login',
             'column_title': _(u'label_login', default='login'), },
            {'column': 'groups',
             'column_title': _(u'label_groups', default='Groups'),
             'transform': link_group})

        if not self.is_email_login():
            base_list = list(base_columns)
            base_list.insert(4, {'column': 'email',
             'column_title': _(u'label_email', default='E-Mail')},
            )
            base_columns = tuple(base_list)

        return tuple(base_columns)
コード例 #8
0
    def send_user_notification(self, userid, reset_pw=False):
        """Notifies a user, that he has been registered on the portal
        """
        options = self.get_options(userid, reset_pw)

        if not self.validate(options):
            return False

        mail = self.get_mail_object(options)

        # send the mail
        mh = getToolByName(self.context, 'MailHost')
        mh.send(mail, mto=options.get('email'))

        self._add_statusmessage(
            _(u'text_usermanagament_user_notified',
                default=u"User ${fullname} (${email}) has been notified",
                mapping={
                    'fullname': options.get('fullname').decode('utf-8'),
                    'email': options.get('email').decode('utf-8')}),
            'info')
コード例 #9
0
    def replace_groups(self, user_id, groups):
        """ Replace the assigned group in the groups-attr
        """
        gtool = getToolByName(self.context, 'portal_groups')
        current_groups = self.get_groups(user_id)

        # Remove unselected groups
        for group in current_groups:
            if group == 'AuthenticatedUsers':
                continue
            if group not in groups:
                gtool.removePrincipalFromGroup(user_id, group, self.request)

        # Add member to groups
        for group in groups:
            if group not in current_groups:
                gtool.addPrincipalToGroup(user_id, group, self.request)

        IStatusMessage(self.request).addStatusMessage(
            _(u'Changes made.'), type="info")

        return True
コード例 #10
0
    def replace_group_members(self, group_id, users):
        """ Replace the assigned users in the users-attr
        """
        current_users = self.get_users(group_id)
        gtool = getToolByName(self.context, 'portal_groups')

        # Remove unselected users
        for user in current_users:
            if user in users:
                continue
            gtool.removePrincipalFromGroup(user, group_id, self.request)

        # Add users to groups
        for user in users:
            if user in current_users:
                continue
            gtool.addPrincipalToGroup(user, group_id, self.request)

        IStatusMessage(self.request).addStatusMessage(
            _(u'Changes made.'), type="info")

        return True
コード例 #11
0
from ftw.usermanagement import user_management_factory as _
from Products.CMFCore.interfaces import ISiteRoot
from Products.CMFCore.utils import getToolByName
from Products.Five.browser import BrowserView
from Products.statusmessages.interfaces import IStatusMessage
from zope.component import getUtility

ERROR_MSG = {
    'no_firstname': _(u'text_missing_firstname'),
    'no_lastname': _(u'text_missing_lastname'),
    'no_email': _(u'text_missing_email'),
    'reserved_uid': _(u"This username is reserved. Please "
        "choose a different name."),
    'invalid_uid': _(u"The login name you selected is already"
            "in use or is not valid. Please choose another."),
    'invalid_email': _(u'You must enter a valid email address.'),
}


class UserRegister(BrowserView):
    """Validate and register a new member
    """

    def __call__(self):
        return self.register()

    def register(self):
        """Register the new Member
        """
        registration = getToolByName(self.context, 'portal_registration')
        mtool = getToolByName(self, 'portal_membership')