def sendmailUser_mask(req, id, err=0): v = getAdminStdVars(req) v["path"] = req.path[1:] if id in["execute", "execu"]: userid = req.params.get("userid") user = getUser(userid) if not user: path = req.path[1:].split("/") user = getExternalUser(userid, path[-1]) password = makeRandomPassword() user.resetPassword(password) text = req.params.get("text") text = text.replace("[wird eingesetzt]", password) try: mail.sendmail(req.params.get("from"), req.params.get("email"), req.params.get("subject"), text) except mail.SocketError: print "Socket error while sending mail" req.setStatus(httpstatus.HTTP_INTERNAL_SERVER_ERROR) return req.getTAL("web/admin/modules/user.html", v, macro="sendmailerror") return req.getTAL("web/admin/modules/user.html", v, macro="sendmaildone") user = getUser(id) if not user: path = req.path[1:].split("/") user = getExternalUser(id, path[-1]) collections = [] seen = {} access = acl.AccessData(user=user) for node in getAllCollections(): if access.hasReadAccess(node): if access.hasWriteAccess(node): collections.append(node.name + " (lesen/schreiben)") seen[node.id] = None for node in tree.getRoot("collections").getChildren(): if access.hasReadAccess(node) and node.id not in seen: collections.append(node.name + " (nur lesen)") x = {} x["name"] = "%s %s" % (user.getFirstName(), user.getLastName()) if(x["name"] == ""): x["name"] = user.getName() x["host"] = config.get("host.name") x["login"] = user.getName() x["isEditor"] = user.isEditor() x["collections"] = list() x["groups"] = user.getGroups() x["groups"].sort() x["language"] = lang(req) x["collections"] = collections x["collections"].sort() v["mailtext"] = req.getTAL("web/admin/modules/user.html", x, macro="emailtext").strip() v["email"] = user.getEmail() v["userid"] = user.getName() return req.getTAL("web/admin/modules/user.html", v, macro="sendmail")
def extractUser(s, userlist): while s[0] == "(" and s[-1] == ")": s = s[1:-1] if s.startswith("user "): s = s[5:] for utype in userlist.keys(): if users.getExternalUser(s, utype): return (utype, s) return ("", s)
def extractUser(s, userlist): while s[0] == "("and s[-1] == ")": s = s[1:-1] if s.startswith("user "): s = s[5:] for utype in userlist.keys(): if users.getExternalUser(s, utype): return (utype, s) return ("", s)
def editUser_mask(req, id, err=0): ugroups = [] usertype = req.params.get("usertype", "intern") newuser = 0 if err == 0 and id == "": # new user user = tree.Node("", type="user") user.setOption("c") newuser = 1 elif err == 0 and id != "": # edit user if usertype == "intern": user = getUser(id) else: user = getExternalUser(id) else: # error while filling values option = "" for key in req.params.keys(): if key.startswith("option_"): option += key[7] for usergroup in req.params.get("usergroups", "").split(";"): ugroups += [usergroup] user = tree.Node("", type="user") user.setName(req.params.get("username", "")) user.setEmail(req.params.get("email", "")) user.setOption(option) user.setLastName(req.params.get("lastname", "")) user.setFirstName(req.params.get("firstname", "")) user.setTelephone(req.params.get("telephone", "")) user.setComment(req.params.get("comment", "")) user.setOrganisation(req.params.get("organisation", "")) v = getAdminStdVars(req) v["error"] = err v["user"] = user v["groups"] = loadGroupsFromDB() v["ugroups"] = ugroups v["useroption"] = useroption v["id"] = id v["usertype"] = usertype v["filtertype"] = req.params.get("filtertype", "") v["actpage"] = req.params.get("actpage") v["newuser"] = newuser v["usertypes"] = getExternalAuthentificators() return req.getTAL("web/admin/modules/user.html", v, macro="modify")
def getUser(self, name): identificator = name if name.find("@") < 0: user_url = config.get("ldap.user_url", "") if user_url: identificator = name + "@" + user_url pattern = re.compile("(^|.* )%s($| )" % identificator) user = users.getExternalUser(name, "ldapuser") if not user: for n in users.getExternalUsers("ldapuser"): if n.getName() == name or pattern.match(n.get("identificator")): user = n break user.setUserType("ldapuser") return user
def getUser(self, name): identificator = name if name.find("@") < 0: user_url = config.get("ldap.user_url", "") if user_url: identificator = name + "@" + user_url pattern = re.compile("(^|.* )%s($| )" % identificator) user = users.getExternalUser(name, "ldapuser") if not user: for n in users.getExternalUsers("ldapuser"): if n.getName() == name or pattern.match( n.get("identificator")): user = n break user.setUserType("ldapuser") return user
def sendmailUser_mask(req, id, err=0): v = getAdminStdVars(req) v["path"] = req.path[1:] if id in ["execute", "execu"]: userid = req.params.get("userid") user = getUser(userid) if not user: path = req.path[1:].split("/") user = getExternalUser(userid, path[-1]) password = makeRandomPassword() user.resetPassword(password) text = req.params.get("text") text = text.replace("[wird eingesetzt]", password) try: mail.sendmail(req.params.get("from"), req.params.get("email"), req.params.get("subject"), text) except mail.SocketError: print "Socket error while sending mail" req.setStatus(httpstatus.HTTP_INTERNAL_SERVER_ERROR) return req.getTAL("web/admin/modules/user.html", v, macro="sendmailerror") return req.getTAL("web/admin/modules/user.html", v, macro="sendmaildone") user = getUser(id) if not user: path = req.path[1:].split("/") user = getExternalUser(id, path[-1]) collections = [] seen = {} access = acl.AccessData(user=user) for node in getAllCollections(): if access.hasReadAccess(node): if access.hasWriteAccess(node): collections.append(node.name + " (lesen/schreiben)") seen[node.id] = None for node in tree.getRoot("collections").getChildren(): if access.hasReadAccess(node) and node.id not in seen: collections.append(node.name + " (nur lesen)") x = {} x["name"] = "%s %s" % (user.getFirstName(), user.getLastName()) if (x["name"] == ""): x["name"] = user.getName() x["host"] = config.get("host.name") x["login"] = user.getName() x["isEditor"] = user.isEditor() x["collections"] = list() x["groups"] = user.getGroups() x["groups"].sort() x["language"] = lang(req) x["collections"] = collections x["collections"].sort() v["mailtext"] = req.getTAL("web/admin/modules/user.html", x, macro="emailtext").strip() v["email"] = user.getEmail() v["userid"] = user.getName() return req.getTAL("web/admin/modules/user.html", v, macro="sendmail")