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
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")
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')), }]
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")
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
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
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)
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')
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
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
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')