Администратор имеет все права. Это понятно.
Создаю Роль - Менеджер и роль - Заказчик.
Менеджер может создать юзера с ролью Заказчик.
Но как сделать, чтоб Менеджер 1 мог редактировать юзеров, которых именно он создал, а не тех, кто создал Администратор или другой Менеджер?
Пробовал два модуля:
administerusersbyrole
role_delegation
В результате, Менеджер может создавать юзеров с ролью Заказчика, но может редактировать любых юзеров с ролью Заказчика. Да еще может и себя назначить администратором
Ужас
Может кто сталкивался с такой проблемой?
Подскажите!
Комментарии
С помощью модуля roleassign можно добится, что юзер может назначать только одну роль - в данном случае Заказчик. Хоть самому себе
Но. Как добиться, чтоб он мог редактировать/просматривать только те профили, которые сам создавал?
Интересный модуль user_permissions
Получается, можно конкретному юзеру персонально назначать любые права
Но, опять же...
Если я дам такому юзеру отдельные права, он сможет изменить и другие учетные записи, а не только те, что сам создал
Вполне возможно это то, что вам нужно модуль subuser
Спасибо!
Гляну
subuser не дружит с модулем user_types, точнее наоборот )
Добавил в модуле subuser пару строк в файле subuser.pages.inc, вместо
<?php if ($admin && !$notify) {
drupal_set_message(t('Created a new user account for <a href="url">%name</a>. No e-mail has been sent.', array('url' => url("user/$account->uid"), '%name' => $account->name)));
}?>
следующий код
<?php if ($admin && !$notify) {
//
if (module_exists('user_types')==TRUE){
//Detect relation between user role and user_roles (array_keys($roles) -- $role - new user role)
$temp = db_result(db_query('SELECT user_type_id FROM {user_types_type} WHERE role = %d', array_keys ($roles)));
//Insert or Update one role to one user into user_types_user
db_query("UPDATE {user_types_user} SET user_type_id='%d' WHERE uid='%d'",$temp, $account->uid);
if (!db_affected_rows()) {
[user=db_query]db_query[/user]("INSERT INTO {users_types_user} (uid, user_type_id) VALUES ('%d', '%d')", $account->uid, $temp);
}
}
//drupal_set_message(t('Created a new user account for <a href="url">%name</a>. No e-mail has been sent.', array('url' => url("user/$account->uid"), '%name' => $account->name)));
}?>
Правда соотношение 1 к 1. Кто сталкнеться, тот поймет