- rename = None
- save = False
-
- for key, value in kwargs.iteritems():
- if key == 'name':
- if value != self.sp.name:
- if self.user.is_admin or self.user.name == self.sp.owner:
- if re.search(VALID_IN_NAME, value):
- message = "Invalid name!" \
- " Use only numbers and letters"
- message_type = "error"
- return self.form_standard(message, message_type)
-
- self._debug("Replacing %s: %s -> %s" %
- (key, self.sp.name, value))
- self.sp.name = value
- rename = [self.sp.name, value]
- save = True
- else:
- message = "Unauthorized to rename object"
- message_type = "error"
- return self.form_standard(message, message_type)
-
- elif key == 'owner':
- if value != self.sp.owner:
- if self.user.is_admin:
- self._debug("Replacing %s: %s -> %s" %
- (key, self.sp.owner, value))
- self.sp.owner = value
- save = True
- else:
- message = "Unauthorized to set owner value"
- message_type = "error"
- return self.form_standard(message, message_type)
-
- elif key == 'default_nameid':
- if value != self.sp.default_nameid:
- if self.user.is_admin:
- self._debug("Replacing %s: %s -> %s" %
- (key, self.sp.default_nameid, value))
- self.sp.default_nameid = value
- save = True
- else:
- message = "Unauthorized to set default nameid value"
- message_type = "error"
- return self.form_standard(message, message_type)
-
- elif key == 'allowed_nameids':
- v = set([x.strip() for x in value.split(',')])
- if v != set(self.sp.allowed_nameids):
- if self.user.is_admin:
- self._debug("Replacing %s: %s -> %s" %
- (key, self.sp.allowed_nameids, list(v)))
- self.sp.allowed_nameids = list(v)
- save = True
- else:
- message = "Unauthorized to set allowed nameids value"
- message_type = "error"
- return self.form_standard(message, message_type)
+ results = dict()
+
+ try:
+ for key, value in kwargs.iteritems():
+ if key == 'name':
+ r = self.change_name(key, value)
+ if r:
+ results.update(r)
+ elif key == 'owner':
+ r = self.change_owner(key, value)
+ if r:
+ results.update(r)
+
+ elif key == 'default_nameid':
+ r = self.change_default_nameid(key, value)
+ if r:
+ results.update(r)
+
+ elif key == 'allowed_nameids':
+ r = self.change_allowed_nameids(key, value)
+ if r:
+ results.update(r)
+
+ except InvalidValueFormat, e:
+ message = str(e)
+ message_type = "warning"
+ return self.form_standard(message, message_type)
+ except UnauthorizedUser, e:
+ message = str(e)
+ message_type = "error"
+ return self.form_standard(message, message_type)
+ except Exception, e: # pylint: disable=broad-except
+ self._debug("Error: %s" % repr(e))
+ message = "Internal Error"
+ message_type = "error"
+ return self.form_standard(message, message_type)