--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -113,7 +113,8 @@
 
     def admin_menu(self):
         admin_url = c.project.url()+'admin/'+self.config.options.mount_point+'/'
-        links = [SitemapEntry('Field Management', admin_url + 'fields', className='nav_child')]
+        links = [SitemapEntry('Field Management', admin_url + 'fields', className='nav_child'),
+                 SitemapEntry('Edit Searches', admin_url + 'bins/', className='nav_child')]
         # if self.permissions and has_artifact_access('configure', app=self)():
         #     links.append(SitemapEntry('Permissions', admin_url + 'permissions', className='nav_child'))
         return links
@@ -153,7 +154,8 @@
             #links.append(SitemapEntry('Create New Subtask', '{0}new/?super_id={1}'.format(self.config.url(), ticket._id), className='nav_child'))
         if len(search_bins):
             links.append(SitemapEntry('Saved Searches'))
-            links.append(SitemapEntry('All Searches', self.config.url() + 'bins', className='nav_child'))
+            if has_artifact_access('save_searches')():
+                links.append(SitemapEntry('Edit Searches', self.config.url() + 'bins', className='nav_child'))
             links = links + search_bins
         if len(related_artifacts):
             links.append(SitemapEntry('Related Artifacts'))
@@ -216,7 +218,6 @@
         setattr(self, 'feed.atom', self.feed)
         setattr(self, 'feed.rss', self.feed)
         self._discuss = AppDiscussionController()
-        self.bins = BinController()
 
     def paged_query(self, q, limit=None, page=0, sort=None, **kw):
         """Query tickets, sorting and paginating the result.
@@ -499,14 +500,16 @@
 
 class BinController(BaseController):
 
-    def __init__(self, summary=None):
+    def __init__(self, summary=None, app=None):
         if summary is not None:
             self.summary = summary
+        if app is not None:
+            self.app = app
 
     @with_trailing_slash
     @expose('forgetracker.templates.bin')
     def index(self, **kw):
-        require(has_artifact_access('read'))
+        require(has_artifact_access('save_searches', app=self.app))
         bins = model.Bin.query.find()
         count=0
         count = len(bins)
@@ -515,7 +518,7 @@
     @with_trailing_slash
     @expose('forgetracker.templates.bin')
     def bins(self):
-        require(has_artifact_access('read'))
+        require(has_artifact_access('save_searches', app=self.app))
         bins = model.Bin.query.find()
         count=0
         count = len(bins)
@@ -525,9 +528,9 @@
     @with_trailing_slash
     @expose('forgetracker.templates.new_bin')
     def newbin(self, q=None, **kw):
-        require(has_artifact_access('write'))
+        require(has_artifact_access('save_searches', app=self.app))
         c.bin_form = W.bin_form
-        return dict(q=q or '', bin=bin or '', modelname='Bin', page='New Bin', globals=c.app.globals)
+        return dict(q=q or '', bin=bin or '', modelname='Bin', page='New Bin', globals=self.app.globals)
         redirect(request.referer)
 
     @with_trailing_slash
@@ -535,20 +538,20 @@
     @expose()
     @validate(W.bin_form, error_handler=newbin)
     def save_bin(self, bin_form=None, **post_data):
-        require(has_artifact_access('write'))
-        c.app.globals.invalidate_bin_counts()
+        require(has_artifact_access('save_searches', app=self.app))
+        self.app.globals.invalidate_bin_counts()
         if request.method != 'POST':
             raise Exception('save_bin must be a POST request')
         bin = model.Bin(summary=bin_form['summary'], terms=bin_form['terms'])
-        bin.app_config_id = c.app.config._id
+        bin.app_config_id = self.app.config._id
         bin.custom_fields = dict()
-        redirect('%ssearch/?q=%s' % (c.app.url, bin_form['terms']))
+        redirect('.')
 
     @with_trailing_slash
     @expose()
     def delbin(self, summary=None):
         bin = model.Bin.query.find(dict(summary=summary,)).first()
-        require(has_artifact_access('write', bin))
+        require(has_artifact_access('save_searches', app=self.app))
         c.app.globals.invalidate_bin_counts()
         bin.delete()
         redirect(request.referer)
@@ -805,6 +808,7 @@
 
     def __init__(self, app):
         self.app = app
+        self.bins = BinController(app=app)
         if self.app.globals and self.app.globals.milestone_names is None:
             self.app.globals.milestone_names = ''