Index: user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user.module,v retrieving revision 1.496 diff -u -r1.496 user.module --- user.module 1 Aug 2005 05:14:05 -0000 1.496 +++ user.module 3 Aug 2005 10:26:30 -0000 @@ -1634,12 +1634,18 @@ $id = arg(4); if ($op == t('Save role')) { - if ($edit['name']) { + $rid = db_result(db_query("SELECT rid FROM {role} WHERE name = '%s'", $edit['name'])); + if ($rid) { + form_set_error('name', t('You must specify a unique role name.')); + drupal_goto("admin/access/roles/edit/$id"); + } + else if ($edit['name']) { db_query("UPDATE {role} SET name = '%s' WHERE rid = %d", $edit['name'], $id); drupal_set_message(t('The changes have been saved.')); } else { form_set_error('name', t('You must specify a valid role name.')); + drupal_goto("admin/access/roles/edit/$id"); } } else if ($op == t('Delete role')) { @@ -1665,7 +1671,12 @@ drupal_goto('admin/access/roles'); } else if ($op == t('Add role')) { - if ($edit['name']) { + $result = db_query("SELECT rid FROM {role} WHERE name = '%s'", $edit['name']); + $role = db_fetch_object($result); + if (isset($role->rid)) { + form_set_error('name', t('You must specify a unique role name.')); + } + else if ($edit['name']) { db_query("INSERT INTO {role} (name) VALUES ('%s')", $edit['name']); drupal_set_message(t('The role has been added.')); drupal_goto('admin/access/roles');