witten
/
luminotes
Archived
1
0
Fork 0

Not allowing "trash" as a new name when you rename a notebook.

Not allowing renaming of the actual trash notebook.
Not showing "add new notebook" link when anonymous user.
This commit is contained in:
Dan Helfman 2007-11-15 22:55:57 +00:00
parent dfaba35d79
commit 3b2462eff3
5 changed files with 37 additions and 7 deletions

View File

@ -772,9 +772,17 @@ class Notebooks( object ):
if not notebook:
raise Access_error()
# prevent renaming of the trash notebook to anything
if notebook.name == u"trash":
raise Access_error()
# prevent just anyone from making official Luminotes notebooks
if name.startswith( u"Luminotes" ) and not notebook.name.startswith( u"Luminotes" ):
raise Access_error( "That notebook name is not available. Please try a different one." )
raise Access_error()
# prevent renaming of another notebook to "trash"
if name == u"trash":
raise Access_error()
notebook.name = name
self.__database.save( notebook, commit = False )

View File

@ -1727,7 +1727,18 @@ class Test_notebooks( Test_controller ):
assert result[ u"error" ]
def test_rename_with_reserved_name( self ):
def test_rename_trash( self ):
self.login()
new_name = u"renamed notebook"
result = self.http_post( "/notebooks/rename", dict(
notebook_id = self.notebook.trash_id,
name = new_name,
), session_id = self.session_id )
assert u"error" in result
def test_rename_with_reserved_luminotes_name( self ):
self.login()
new_name = u"Luminotes blog"
@ -1738,6 +1749,17 @@ class Test_notebooks( Test_controller ):
assert result[ u"error" ]
def test_rename_with_reserved_trash_name( self ):
self.login()
new_name = u" trash "
result = self.http_post( "/notebooks/rename", dict(
notebook_id = self.notebook.object_id,
name = new_name,
), session_id = self.session_id )
assert result[ u"error" ]
def test_recent_notes( self ):
result = cherrypy.root.notebooks.load_recent_notes(
self.notebook.object_id,

View File

@ -1396,7 +1396,7 @@ Wiki.prototype.end_notebook_rename = function () {
if ( /^\s*$/.test( new_notebook_name ) )
new_notebook_name = this.notebook.name;
if ( /^\s*Luminotes/.test( new_notebook_name ) ) {
if ( /^\s*Luminotes/.test( new_notebook_name ) || /^\s*trash\s*$/.test( new_notebook_name ) ) {
new_notebook_name = this.notebook.name;
this.display_error( "That notebook name is not available. Please try a different one." );
}

View File

@ -3,7 +3,7 @@ from Rounded_div import Rounded_div
class Link_area( Div ):
def __init__( self, notebooks, notebook, total_notes_count, parent_id, notebook_path ):
def __init__( self, notebooks, notebook, total_notes_count, parent_id, notebook_path, user ):
linked_notebooks = [ nb for nb in notebooks if nb.read_write and nb.name not in ( u"trash" ) ]
Div.__init__(
@ -99,7 +99,7 @@ class Link_area( Div ):
),
class_ = u"link_area_item",
) for nb in linked_notebooks ],
Div(
( user.username != u"anonymous" ) and Div(
A(
u"add new notebook",
href = u"#",
@ -107,7 +107,7 @@ class Link_area( Div ):
title = u"Create a new wiki notebook.",
),
class_ = u"link_area_item",
),
) or None,
id = u"notebooks_area"
),

View File

@ -103,7 +103,7 @@ class Main_page( Page ):
Toolbar( hide_toolbar = not notebook.read_write ),
id = u"toolbar_area",
),
Link_area( notebooks, notebook, total_notes_count, parent_id, notebook_path ),
Link_area( notebooks, notebook, total_notes_count, parent_id, notebook_path, user ),
Div(
Div(
Div(