Index: /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 15379)
+++ /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 15380)
@@ -636,5 +636,5 @@
     public void DeleteProject(Guid projectId) {
       RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator);
-      AuthorizationManager.AuthorizeForResourceAdministration(projectId);
+      AuthorizationManager.AuthorizeForProjectAdministration(projectId);
       var pm = PersistenceManager;
       using (new PerformanceLogger("DeleteProject")) {
@@ -665,9 +665,9 @@
         var currentUserId = UserManager.CurrentUserId;
         return pm.UseTransaction(() => {
-          var resourcePermissions = projectPermissionDao.GetAll();
+          var projectPermissions = projectPermissionDao.GetAll();
           return projectDao.GetAll().ToList()
             .Where(x => isAdministrator
               || x.OwnerUserId == currentUserId
-              || UserManager.VerifyUser(currentUserId, resourcePermissions
+              || UserManager.VerifyUser(currentUserId, projectPermissions
                   .Where(y => y.ProjectId == x.ProjectId)
                   .Select(z => z.GrantedUserId)
@@ -684,4 +684,5 @@
     public void GrantProjectPermissions(Guid projectId, Guid[] grantedUserIds) {
       RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      AuthorizationManager.AuthorizeForProjectAdministration(projectId);
       var pm = PersistenceManager;
       using (new PerformanceLogger("GrantProjectPermissions")) {
@@ -704,9 +705,9 @@
     public void RevokeProjectPermissions(Guid projectId, Guid[] grantedUserIds) {
       RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      AuthorizationManager.AuthorizeForProjectAdministration(projectId);
       var pm = PersistenceManager;
       using (new PerformanceLogger("RevokeProjectPermissions")) {
         var projectPermissionDao = pm.ProjectPermissionDao;
         pm.UseTransaction(() => {
-          AuthorizeForProject(pm, projectId);
           projectPermissionDao.DeleteByProjectAndGrantedUserId(projectId, grantedUserIds);
           pm.SubmitChanges();
Index: /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Interfaces/IAuthorizationManager.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Interfaces/IAuthorizationManager.cs	(revision 15379)
+++ /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Interfaces/IAuthorizationManager.cs	(revision 15380)
@@ -35,4 +35,6 @@
 
     void AuthorizeForResourceAdministration(Guid resourceId);
+
+    void AuthorizeForProjectAdministration(Guid projectId);
   }
 }
Index: /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Manager/AuthorizationManager.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Manager/AuthorizationManager.cs	(revision 15379)
+++ /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Manager/AuthorizationManager.cs	(revision 15380)
@@ -81,4 +81,17 @@
     }
 
+    public void AuthorizeForProjectAdministration(Guid projectId) {
+      var pm = PersistenceManager;
+      var projectDao = pm.ProjectDao;
+      pm.UseTransaction(() => {
+        var project = projectDao.GetById(projectId);
+        if (project == null) throw new SecurityException(NOT_AUTHORIZED);
+        if (project.OwnerUserId != UserManager.CurrentUserId
+            && !RoleVerifier.IsInRole(HiveRoles.Administrator)) {
+          throw new SecurityException(NOT_AUTHORIZED);
+        }
+      });
+    }
+
     private DA.Permission GetPermissionForJob(IPersistenceManager pm, Guid jobId, Guid userId) {
       var jobDao = pm.JobDao;
Index: /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs
===================================================================
--- /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs	(revision 15379)
+++ /branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs	(revision 15380)
@@ -149,13 +149,13 @@
     #endregion
 
-    #region ResourcePermission Methods
-    [OperationContract]
-    void GrantResourcePermissions(Guid resourceId, Guid[] grantedUserIds);
-
-    [OperationContract]
-    void RevokeResourcePermissions(Guid resourceId, Guid[] grantedUserIds);
-
-    [OperationContract]
-    IEnumerable<ProjectPermission> GetResourcePermissions(Guid resourceId);
+    #region ProjectPermission Methods
+    [OperationContract]
+    void GrantProjectPermissions(Guid projectId, Guid[] grantedUserIds);
+
+    [OperationContract]
+    void RevokeProjectPermissions(Guid projectId, Guid[] grantedUserIds);
+
+    [OperationContract]
+    IEnumerable<ProjectPermission> GetProjectPermissions(Guid projectId);
     #endregion
 
