Index: services.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/Attic/services.module,v
retrieving revision 1.3.2.5
diff -u -r1.3.2.5 services.module
--- services.module	15 Feb 2008 18:55:54 -0000	1.3.2.5
+++ services.module	19 Feb 2008 17:21:52 -0000
@@ -29,8 +29,14 @@
 /**
  * Implementation of hook_perm()
  */
-function services_perm() { 
-  return array('access services', 'administer services'); 
+function services_perm() {
+  $permissions = array('administer services', 'access services');
+  // Provide permissions for each service method.
+  $services = services_get_all();
+  foreach ($services as $service) {
+    $permissions[] = 'access '. $service['#method'];
+  }
+  return $permissions;
 }
 
 /**
@@ -325,6 +331,11 @@
     return services_error(t('Method does not exist.'));
   }
   
+  // check permissions for the method
+  if (!user_access('access'. $method_name)) {
+    return services_error(t('Permission denied.'));
+  }
+  
   // check for missing args
   foreach ($method['#args'] as $key => $arg) {
     if (!$arg['#optional']) {
@@ -542,4 +553,4 @@
   session_id($sessid);
   sess_read($sessid);
   session_start();
-}
\ No newline at end of file
+}

