def get_analyst(self, collection): model = collection[0] analyses = self.get_analyses_by([model]) actor = getTransitionUsers(analyses[0], 'submit') user = actor[0] if actor else '' user = api.get_user(user) return user.fullname
def getAnalystName(self): """Returns the name of the currently assigned analyst """ analyst = self.getAnalyst() if not analyst: return "" user = api.get_user(analyst.strip()) return user and user.getProperty("fullname") or analyst
def hasUser(self): """Check if contact has user """ username = self.getUsername() if not username: return False user = api.get_user(username) return user is not None
def _get_fullname_from_user_id(self, userid, default=""): """Try the fullname of the user """ fullname = default user = api.get_user(userid) if user: props = api.get_user_properties(user) fullname = props.get("fullname", fullname) contact = api.get_user_contact(user) fullname = contact and contact.getFullname() or fullname return fullname
def get_verifier(self, collection): model = collection[0] analyses = self.get_analyses_by([model]) actor = getTransitionUsers(analyses[0], 'verify') user_name = actor[0] if actor else '' user = api.get_user(user_name) roles = ploneapi.user.get_roles(username=user_name) date_verified = self.to_localized_time(model.getDateVerified()) return { "fullname": user.fullname, 'role': roles[0], 'date_verified': date_verified }
def verifiers(self): """Returns a list of user objects """ out = [] userids = reduce( lambda v1, v2: v1 + v2, map(lambda v: v.Verificators.split(","), self.Analyses)) for userid in set(userids): user = api.get_user(userid) if user is None: logger.warn("Could not find user '{}'".format(userid)) continue out.append(user) return out
def _create_user(self): """Create a new user """ def error(field, message): if field: message = "%s: %s" % (field, message) self.context.plone_utils.addPortalMessage(message, 'error') return self.request.response.redirect(self.context.absolute_url() + "/login_details") form = self.request.form contact = self.context password = safe_unicode(form.get('password', '')).encode('utf-8') username = safe_unicode(form.get('username', '')).encode('utf-8') confirm = form.get('confirm', '') email = safe_unicode(form.get('email', '')).encode('utf-8') if not username: return error('username', PMF("Input is required but not given.")) if not email: return error('email', PMF("Input is required but not given.")) reg_tool = self.context.portal_registration # properties = self.context.portal_properties.site_properties # if properties.validate_email: # password = reg_tool.generatePassword() # else: if password != confirm: return error('password', PMF("Passwords do not match.")) if not password: return error('password', PMF("Input is required but not given.")) if not confirm: return error('password', PMF("Passwords do not match.")) if len(password) < 5: return error( 'password', PMF("Passwords must contain at least 5 " "characters.")) for user in self.get_users(): userid = user.get("id", None) if userid is None: continue user_obj = api.get_user(userid) if user_obj.getUserName() == username: msg = "Username {} already exists, please, choose " \ "another one.".format(username) return error(None, msg) try: reg_tool.addMember(username, password, properties={ 'username': username, 'email': email, 'fullname': username }) except ValueError, msg: return error(None, msg)