+int
+oper_try_set_staff_access(struct userNode *user, struct userNode *bot, struct handle_info *target, unsigned int new_level) {
+ if (!oper_has_access(user, bot, nickserv_conf.modstaff_level, 0))
+ return 0;
+ if ((user->handle_info->opserv_level < target->opserv_level)
+ || ((user->handle_info->opserv_level == target->opserv_level)
+ && (user->handle_info->opserv_level < 1000))) {
+ send_message(user, bot, "MSG_USER_OUTRANKED", target->handle);
+ return 0;
+ }
+ if (target->staff_level == new_level)
+ return 0;
+ log_module(NS_LOG, LOG_INFO, "Account %s setting staff level for account %s to %d (from %d).",
+ user->handle_info->handle, target->handle, new_level, target->staff_level);
+ target->staff_level = new_level;
+ return 1;
+}
+