diff -u beaker-server-0.6.14-7.el5.python/activity.py beaker-server-0.6.14-7.updates.python/activity.py
--- beaker-server-0.6.14-7.el5.python/activity.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/activity.py	2011-08-06 12:38:41.747301287 +0300
@@ -51,6 +51,7 @@
             activity_search.append_results(search['value'],col,search['operation'],**kw)
         return activity_search.return_results()
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.grid")
     @paginate('list',default_order='-created', limit=50)
     def index(self,**kw):
diff -u beaker-server-0.6.14-7.el5.python/controllers.py beaker-server-0.6.14-7.updates.python/controllers.py
--- beaker-server-0.6.14-7.el5.python/controllers.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/controllers.py	2011-08-08 12:19:37.457538056 +0300
@@ -97,6 +97,7 @@
 
 class Devices:
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.grid')
     @paginate('list',default_order='fqdn',limit=10)
     def view(self, id):
@@ -112,6 +113,7 @@
                     object_count = systems.count(),
                     list = systems)
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.grid')
     @paginate('list',default_order='description',limit=50)
     def default(self, *args, **kw):
@@ -411,6 +413,7 @@
         recipeset.activity.append(activity)
         return {'success' : True } 
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.grid_add')
     @expose(template='bkr.server.templates.systems_feed', format='xml', as_format='atom',
             content_type='application/atom+xml', accept_format='application/atom+xml')
@@ -969,6 +972,7 @@
             cherrypy.response.headers['Content-Type'] = 'application/rdf+xml'
             return graph.serialize(format='pretty-xml')
 
+    @identity.require(identity.not_anonymous())
     @cherrypy.expose
     def view(self, fqdn=None, **kwargs):
         if isinstance(fqdn, str):
diff -u beaker-server-0.6.14-7.el5.python/distro_family.py beaker-server-0.6.14-7.updates.python/distro_family.py
--- beaker-server-0.6.14-7.el5.python/distro_family.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/distro_family.py	2011-08-06 12:38:41.749300732 +0300
@@ -1,10 +1,11 @@
-from turbogears import expose, paginate
+from turbogears import expose, paginate, identity
 from bkr.server.osversion import OSVersions
 from bkr.server.widgets import myPaginateDataGrid
 
 
 class DistroFamily(OSVersions):
  
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.grid") 
     @paginate('list',limit=50, default_order='osmajor.osmajor')
     def index(self,*args,**kw): 
diff -u beaker-server-0.6.14-7.el5.python/distro.py beaker-server-0.6.14-7.updates.python/distro.py
--- beaker-server-0.6.14-7.el5.python/distro.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/distro.py	2011-08-07 16:47:09.047354754 +0300
@@ -35,6 +35,7 @@
     tag_form = DistroTags(name='tags')
     lc_form = LabControllers(name='lab_controllers')
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.distro")
     def view(self, id=None, *args, **kw):
         try:
@@ -189,6 +190,7 @@
             distro_search.append_results(search['value'],col,search['operation'],**kw)
         return distro_search.return_results()
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.grid")
     @paginate('list',default_order='-date_created', limit=50)
     def index(self,*args,**kw):
diff -u beaker-server-0.6.14-7.el5.python/group.py beaker-server-0.6.14-7.updates.python/group.py
--- beaker-server-0.6.14-7.el5.python/group.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/group.py	2011-08-07 16:47:09.045554010 +0300
@@ -123,6 +123,7 @@
         grid = BeakerDataGrid(fields=[system_link])
         return dict(grid=grid,list=systems,title='Systems for group %s' % group.group_name,search_bar = None,object_count=systems.count())
     
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.group_users')
     def group_members(self,id, **kw):
         group = Group.by_id(id)
@@ -197,7 +198,7 @@
         flash( _(u"OK") )
         redirect("./edit?id=%s" % kw['group_id'])
 
-
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.grid")
     @paginate('list', default_order='group_name', limit=20)
     def index(self, *args, **kw):
diff -u beaker-server-0.6.14-7.el5.python/job_matrix.py beaker-server-0.6.14-7.updates.python/job_matrix.py
--- beaker-server-0.6.14-7.el5.python/job_matrix.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/job_matrix.py	2011-08-06 15:19:55.447960870 +0300
@@ -43,6 +43,7 @@
     whiteboards_used = {}
     result_data = []
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.generic')
     def index(self,**kw):
         self.col_call = 0
diff -u beaker-server-0.6.14-7.el5.python/jobs.py beaker-server-0.6.14-7.updates.python/jobs.py
--- beaker-server-0.6.14-7.el5.python/jobs.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/jobs.py	2011-08-07 16:47:09.046354962 +0300
@@ -535,7 +535,7 @@
         jobxml = Job.by_id(id).to_xml().toxml()
         return dict(xml=jobxml)
 
-    
+    @identity.require(identity.not_anonymous())    
     @expose(template='bkr.server.templates.grid')
     @paginate('list',default_order='-id', limit=50)
     def index(self,*args,**kw): 
@@ -684,6 +684,7 @@
                 # raised to catch an error 
         return returns
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.job") 
     def default(self, id):
         try:
diff -u beaker-server-0.6.14-7.el5.python/keytypes.py beaker-server-0.6.14-7.updates.python/keytypes.py
--- beaker-server-0.6.14-7.el5.python/keytypes.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/keytypes.py	2011-08-07 16:47:09.047354754 +0300
@@ -42,6 +42,7 @@
         self.search_col = Key.key_name
         self.search_mapper = Key
     
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.form')
     def new(self, **kw):
         return dict(
@@ -51,6 +52,7 @@
             value = kw,
         )
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.form')
     def edit(self,**kw):
         values = []
@@ -82,6 +84,7 @@
         flash( _(u"OK") )
         redirect(".")
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.admin_grid")
     @paginate('list')
     def index(self,*args,**kw):
@@ -103,6 +106,7 @@
                     object_count = keytypes.count(),
                     list = keytypes)
 
+    @identity.require(identity.not_anonymous())
     @expose()
     def remove(self, **kw):
         remove = Key.by_id(kw['id'])
diff -u beaker-server-0.6.14-7.el5.python/osversion.py beaker-server-0.6.14-7.updates.python/osversion.py
--- beaker-server-0.6.14-7.el5.python/osversion.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/osversion.py	2011-08-07 16:47:09.048354686 +0300
@@ -132,6 +132,7 @@
         osmajors = list(set(osmajors))
         return dict(matches=osmajors)
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.admin_grid")
     @paginate('list',limit=50, default_order='osmajor.osmajor')
     def index(self,*args,**kw):
diff -u beaker-server-0.6.14-7.el5.python/power.py beaker-server-0.6.14-7.updates.python/power.py
--- beaker-server-0.6.14-7.el5.python/power.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/power.py	2011-08-07 16:47:09.047354754 +0300
@@ -79,7 +79,7 @@
         self.search_col = PowerType.name
         self.search_mapper = PowerType
       
-
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.form')
     def new(self, **kw):
         return dict(
@@ -89,6 +89,7 @@
             value = kw,
         )
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.form')
     def edit(self,**kw):
         values = []
@@ -130,6 +131,7 @@
         powers = [elem.name for elem in search]
         return dict(matches=powers)
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.admin_grid")
     @paginate('list', default_order='name', limit=20)
     def index(self,*args,**kw):
@@ -153,6 +155,7 @@
                     object_count = powertypes.count(),
                     list = powertypes)
 
+    @identity.require(identity.not_anonymous())
     @expose()
     def remove(self, **kw):
         remove = PowerType.by_id(kw['id'])
diff -u beaker-server-0.6.14-7.el5.python/recipes.py beaker-server-0.6.14-7.updates.python/recipes.py
--- beaker-server-0.6.14-7.el5.python/recipes.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/recipes.py	2011-08-07 16:47:09.045554010 +0300
@@ -259,6 +259,7 @@
             return_dict.update({'searchvalue':searchvalue})
         return return_dict
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.grid')
     @paginate('list',default_order='-id', limit=50)
     def index(self,*args,**kw):
@@ -319,6 +320,7 @@
                     options=search_options,
                     searchvalue=searchvalue)
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.recipe")
     def default(self, id):
         try:
diff -u beaker-server-0.6.14-7.el5.python/reports.py beaker-server-0.6.14-7.updates.python/reports.py
--- beaker-server-0.6.14-7.el5.python/reports.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/reports.py	2011-08-07 16:47:09.046354962 +0300
@@ -65,6 +65,7 @@
         extension_controllers.append(controller)
         locals()[entry_point.name] = controller
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.grid")
     @paginate('list',limit=50, default_order='start_time')
     def index(self, *args, **kw):
@@ -142,6 +143,7 @@
         col_type = search_utility.SystemReserve.search.field_type(field)
         return SearchOptions.get_search_options_worker(search,col_type)
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.utilisation_graph')
     def utilisation_graph(self):
         groups = Group.query().join('systems').order_by(Group.group_name)
@@ -150,6 +152,7 @@
             'all_groups': [(g.group_id, g.group_name) for g in groups],
         }
 
+    @identity.require(identity.not_anonymous())
     @cherrypy.expose
     @validate(validators={
         'start': validators.Wrapper(to_python=datetime_from_js),
diff -u beaker-server-0.6.14-7.el5.python/tasks.py beaker-server-0.6.14-7.updates.python/tasks.py
--- beaker-server-0.6.14-7.el5.python/tasks.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/tasks.py	2011-08-07 16:47:09.048354686 +0300
@@ -227,6 +227,7 @@
             flash(_(u"%s Added/Updated at id:%s" % (task.name,task.id)))
             redirect(".")
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.task_search')
     @validate(form=task_form)
     @paginate('tasks',default_order='-id', limit=30)
@@ -326,6 +327,7 @@
         task = Task.by_id(t_id)
         return task.disable()
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.grid')
     @paginate('list',default_order='name', limit=30)
     def index(self, *args, **kw):
@@ -372,6 +374,7 @@
                     options=search_options,
                     searchvalue=searchvalue)
 
+    @identity.require(identity.not_anonymous())
     @expose(template='bkr.server.templates.task')
     def default(self, *args, **kw):
         try:
diff -u beaker-server-0.6.14-7.el5.python/user.py beaker-server-0.6.14-7.updates.python/user.py
--- beaker-server-0.6.14-7.el5.python/user.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/user.py	2011-08-07 16:47:09.048354686 +0300
@@ -99,6 +99,7 @@
                               text = 'Remove (-)')
         return link
 
+    @identity.require(identity.not_anonymous())
     @expose(template="bkr.server.templates.admin_grid")
     @paginate('list', default_order='user_name',limit=20)
     def index(self,*args,**kw): 
diff -u beaker-server-0.6.14-7.el5.python/watchdog.py beaker-server-0.6.14-7.updates.python/watchdog.py
--- beaker-server-0.6.14-7.el5.python/watchdog.py	2011-07-05 06:34:37.000000000 +0300
+++ beaker-server-0.6.14-7.updates.python/watchdog.py	2011-08-06 12:38:41.749300732 +0300
@@ -1,4 +1,4 @@
-from turbogears import expose,paginate
+from turbogears import expose, paginate, identity
 from turbogears.database import mapper
 from sqlalchemy import select
 from bkr.server.xmlrpccontroller import RPCRoot
@@ -11,6 +11,7 @@
 
 class Watchdogs(RPCRoot):
 
+    @identity.require(identity.not_anonymous())
     @expose('bkr.server.templates.grid')
     @paginate('list', default_order='job_id', limit=50, max_limit=None)
     def index(self,*args,**kw): 
