Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/models/admintools/snmp/__init__.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/models/admintools/snmp/__init__.py	(revision 40004)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/models/admintools/snmp/__init__.py	(working copy)
@@ -510,22 +510,21 @@
     level = EnumField(verbose_name='Security Level',values=(
                         ('authNopriv', 'authNopriv'),
                         ('authPriv', 'authPriv'),
-                       ), default='authNopriv')
-    auth_password = CharField(verbose_name='Authentication Password', length='8..32')
+                       ), default='authNopriv', editable=True)
+    auth_password = CharField(verbose_name='Authentication Password', length='8..32', editable=True)
     auth_protocol = EnumField(verbose_name='Authentication Protocol', values=(
                         ('MD5', 'MD5'),
                         ('SHA1', 'SHA1'),
-                       ), default='MD5')
-    priv_password = CharField(verbose_name='Private Password', length='8..32', condition=ValueCondition('level', 'authPriv'))
+                       ), default='MD5', editable=True)
+    priv_password = CharField(verbose_name='Private Password', length='8..32', condition=ValueCondition('level', 'authPriv'), editable=True)
     priv_protocol = EnumField(verbose_name='Private Password Protocol', condition=ValueCondition('level', 'authPriv'), values=(
                         ('AES', 'AES'),
                         ('DES', 'DES'),
-                       ), default='DES', optional=True)
+                       ), default='DES', optional=True, editable=True)
 
     class Meta:
         verbose_name = 'SNMP V3 User'
         button_submit_text =  lambda options: __('Add a %s') % unicode(options.verbose_name)
-        list_config_options={'click_enable':False}
         show_im_export_button = True
 
     class Manager(CLIManager):
@@ -547,13 +546,7 @@
             return QuerySet(self._model, res_data)
 
         def _insert(self, instance):
-            self.cli.set_config()
-            if instance.level == 'authNopriv':
-                result = self.cli.cmd('snmp v3user "%s" "%s" %s "%s" %s' %(instance.username, instance.auth_password, instance.level, "", instance.auth_protocol),
-                                BlankParser(nonblank_exception=CLICmdError, supplement=True))
-            else:
-                result = self.cli.cmd('snmp v3user "%s" "%s" %s "%s" "%s" "%s"' %(instance.username, instance.auth_password, instance.level, instance.priv_password,  instance.auth_protocol, instance.priv_protocol),
-                                BlankParser(nonblank_exception=CLICmdError, supplement=True))
+            result = self.configure_user(instance)
             return result
 
         def _delete(self, pk_list):
@@ -563,6 +556,19 @@
                             BlankParser(nonblank_exception=CLICmdError, supplement=True))
             return
 
+        def _update(self, instance):
+            result = self.configure_user(instance)
+            return result
+
+        def configure_user(self, instance):
+            self.cli.set_config()
+            if instance.level == 'authNopriv':
+                result = self.cli.cmd('snmp v3user "%s" "%s" %s "%s" %s' %(instance.username, instance.auth_password, instance.level, "", instance.auth_protocol),
+                                BlankParser(nonblank_exception=CLICmdError, supplement=True))
+            else:
+                result = self.cli.cmd('snmp v3user "%s" "%s" %s "%s" "%s" "%s"' %(instance.username, instance.auth_password, instance.level, instance.priv_password,  instance.auth_protocol, instance.priv_protocol),
+                                BlankParser(nonblank_exception=CLICmdError, supplement=True))
+            return result
 
 class PermitIP(ANModel):
     asso = AssoField2(verbose_name = 'Permit IP',tgt='admintools.snmp.SNMPGeneral.permit_ip',
