def set_password(self, user, password): import re if len(user) < 3: raise TracError("user name must be at least 3 characters long") if not re.match(r"^\w+$", user): raise TracError("user name must consist only of alpha-numeric characters") if user not in self.get_users(): from trac.wiki.model import WikiPage db = self.env.get_db_cnx() page = WikiPage(self.env, user, db=db) # User creation with existing page if page.exists: raise TracError('wiki page "%s" already exists' % user) else: from tractags.api import TagEngine tagspace = TagEngine(self.env).tagspace.wiki tagspace.add_tags(None, user, ["user"]) page.text = """= %(user)s =\n\n[[ListTagged(%(user)s)]]\n\n[[TagIt(user)]]""" % {"user": user} page.save(user, "New user %s registered" % user, None) self.env.log.debug("New user %s registered" % user) HtPasswdStore.set_password(self, user, password)
def set_password(self, user, password): import re if len(user) < 3: raise TracError('user name must be at least 3 characters long') if not re.match(r'^\w+$', user): raise TracError( 'user name must consist only of alpha-numeric characters') if user not in self.get_users(): from trac.wiki.model import WikiPage db = self.env.get_db_cnx() page = WikiPage(self.env, user, db=db) # User creation with existing page if page.exists: raise TracError('wiki page "%s" already exists' % user) else: from tractags.api import TagEngine tagspace = TagEngine(self.env).tagspace.wiki tagspace.add_tags(None, user, ['user']) page.text = '''= %(user)s =\n\n[[ListTagged(%(user)s)]]\n\n[[TagIt(user)]]''' % { 'user': user } page.save(user, 'New user %s registered' % user, None) self.env.log.debug("New user %s registered" % user) HtPasswdStore.set_password(self, user, password)
def _new_blog_post(self, req): """ Generate a new blog post """ action = req.args.get('action', 'edit') pg_name_fmt = self.env.config.get('blog', 'page_format', '%Y/%m/%d/%H.%M') wikitext = req.args.get('text', '') blogtitle = req.args.get('blogtitle', '') pagename = req.args.get('pagename', pg_name_fmt) pagename = time.strftime(pagename) if '%@' in pagename and blogtitle: urltitle = re.sub(r'[^\w]+', '-', blogtitle).lower() pagename = pagename.replace('%@', urltitle) while '-' in pagename and len(pagename) > 60: pagename = '-'.join(pagename.split('-')[:-1]) pagename = pagename.strip('-') if '$U' in pagename: pagename = pagename.replace('$U', req.authname) comment = req.args.get('comment', '') readonly = int(req.args.has_key('readonly')) edit_rows = int(req.args.get('edite_rows', 20)) req_tags = req.args.get('tags', []) if req.method == 'POST': if action == 'edit': if req.args.has_key('cancel'): req.redirect(self.env.href.blog()) page = WikiPage(self.env, pagename, None) tags = TagEngine(self.env).tagspace.wiki if req.args.has_key('preview'): req.hdf['blog.action'] = 'preview' self._render_editor(req, page, self.env.get_db_cnx(), preview=True) else: titleline = ' '.join(["=", blogtitle, "=\n"]) if blogtitle: page.text = ''.join([titleline, wikitext]) else: page.text = wikitext page.readonly = readonly page.save(req.authname, comment, req.remote_addr) # taglist = [x.strip() for x in req_tags.split(',') if x] taglist = [t.strip() for t in _tag_split.split(req.args.get('tags')) if t.strip()] tags.add_tags(req, pagename, taglist) req.redirect(self.env.href.blog()) else: info = { 'title' : blogtitle, 'pagename': pagename, 'page_source': wikitext, 'comment': comment, 'readonly': readonly, 'edit_rows': edit_rows, 'scroll_bar_pos': req.args.get('scroll_bar_pos', '') } req.hdf['blog'] = info req.hdf['title'] = 'New Blog Entry' tlist = req.args.getlist('tag') if not tlist: tlist = [self.env.config.get('blog', 'default_tag', 'blog')] req.hdf['tags'] = ', '.join(tlist) pass
def _new_blog_post(self, req): """ Generate a new blog post """ action = req.args.get('action', 'edit') pg_name_fmt = self.env.config.get('blog', 'page_format', '%Y/%m/%d/%H.%M') wikitext = req.args.get('text', '') blogtitle = req.args.get('blogtitle', '') pagename = req.args.get('pagename', pg_name_fmt) pagename = time.strftime(pagename) if '%@' in pagename and blogtitle: urltitle = re.sub(r'[^\w]+', '-', blogtitle).lower() pagename = pagename.replace('%@', urltitle) while '-' in pagename and len(pagename) > 60: pagename = '-'.join(pagename.split('-')[:-1]) pagename = pagename.strip('-') if '$U' in pagename: pagename = pagename.replace('$U', req.authname) comment = req.args.get('comment', '') readonly = int(req.args.has_key('readonly')) edit_rows = int(req.args.get('edite_rows', 20)) req_tags = req.args.get('tags', []) if req.method == 'POST': if action == 'edit': if req.args.has_key('cancel'): referrer = req.args.get('referer') or req.get_header( 'Referer') or self.env.href.blog() req.redirect(referrer) page = WikiPage(self.env, pagename, None) tags = TagEngine(self.env).tagspace.wiki if req.args.has_key('preview'): req.hdf['blog.action'] = 'preview' self._render_editor(req, page, self.env.get_db_cnx(), preview=True) else: titleline = ' '.join(["=", blogtitle, "=\n"]) if blogtitle: page.text = ''.join([titleline, wikitext]) else: page.text = wikitext # Add footer page.text = page.text.join([ "\n\n", self.variable_substitution( req, self.env.config.get('blog', 'footer', '')) ]) page.readonly = readonly page.save(req.authname, comment, req.remote_addr) # taglist = [x.strip() for x in req_tags.split(',') if x] taglist = [ t.strip() for t in _tag_split.split(req.args.get('tags')) if t.strip() ] tags.add_tags(req, pagename, taglist) referrer = req.args.get('referer') or req.get_header( 'Referer') or self.env.href.blog() req.redirect(referrer) else: info = { 'title': blogtitle, 'pagename': pagename, 'page_source': wikitext, 'comment': comment, 'readonly': readonly, 'edit_rows': edit_rows, 'scroll_bar_pos': req.args.get('scroll_bar_pos', '') } req.hdf['blog'] = info req.hdf['title'] = 'New Blog Entry' tlist = req.args.getlist('tag') if not tlist: tlist = [self.env.config.get('blog', 'default_tag', 'blog')] req.hdf['tags'] = ', '.join(tlist) pass