def create_group(self, name, fullname='', email='', hidden=False, groupid=None): """Create a new :class:`group <Group>` on the server. :param name: the name of the group :param fullname: the full name of the group (optional) :param email: the email address of the group (optional) :param hidden: hide the group (optional) :param groupid: the id of the group (optional) :return: :class:`group <Group>` the created group """ name = _unicode(name) # XXX: fullname/email unicode? email = _unicode(email) fullname = _unicode(fullname) try: self.sa.CreateGroup( ECGROUP(name, fullname, email, int(hidden), groupid), MAPI_UNICODE) except MAPIErrorNoSupport: raise NotSupportedError( "cannot create groups with configured user plugin") except MAPIErrorCollision: raise DuplicateError("group '%s' already exists" % name) return self.group(name)
def _update(self, **kwargs): # XXX: crashes server on certain characters... self._name = kwargs.get('name', self.name) fullname = kwargs.get('fullname', self.fullname) email = kwargs.get('email', self.email) hidden = kwargs.get('hidden', self.hidden) group = ECGROUP(self._name, fullname, email, int(hidden), self._ecgroup.GroupID) self.server.sa.SetGroup(group, MAPI_UNICODE) self._ecgroup = self.server.sa.GetGroup(self.server.sa.ResolveGroupName(self._name, MAPI_UNICODE), MAPI_UNICODE)