diff --git a/auto_tagging_suggestions.module b/auto_tagging_suggestions.module
index 1c225ab..f03fa62 100644
--- a/auto_tagging_suggestions.module
+++ b/auto_tagging_suggestions.module
@@ -19,11 +19,56 @@ function auto_tagging_suggestions_help($path, $arg) {
 }
 
 /**
+ * Implements hook_permission().
+ */
+function auto_tagging_suggestions_permission() {
+  $perms = array();
+  foreach (node_permissions_get_configured_types() as $type) {
+    $perms += auto_tagging_suggestions_list_permissions($type);
+  }
+  return $perms;
+}
+
+/**
+ * Builds permissions of auto tagging suggestion for bundles.
+ *
+ * @param $type
+ *   The bundle type.
+ * @return array
+ *   An array of permissions.
+ */
+function auto_tagging_suggestions_list_permissions($type) {
+  $info = node_type_get_type($type);
+  $perms = array(
+    "access autotagging $type content" => array(
+      'title' => t('%type_name: Access Auto tagging suggestions', array('%type_name' => $info->name)),
+    ),
+  );
+  return $perms;
+}
+
+/**
+ * Callback function handles user access to autotagging suggestions.
+ *
+ * @param $type
+ *   The bundle type.
+ * @return bool
+ *   True if user has access, else false.
+ */
+function auto_tagging_suggestions_access($type) {
+  return user_access("access autotagging $type content");
+}
+
+/**
  * Implements hook_form_alter.
  */
 function auto_tagging_suggestions_form_alter(&$form, &$form_state, $form_id) {
   // todo : configurable form id's
-  if (strpos($form_id, '_node_form') !== FALSE) {
+  $perm = FALSE;
+  if (!empty($form['type']['#value'])) {
+    $perm = auto_tagging_suggestions_access($form['type']['#value']);
+  }
+  if (strpos($form_id, '_node_form') !== FALSE && $perm) {
     drupal_add_css(drupal_get_path('module', 'auto_tagging_suggestions') . '/auto_tagging_suggestions.css');
     $form['auto_tagging_suggestions'] = array(
       '#type' => 'fieldset',
