ошибка File "/tmp/sessions/5d8b38825a31ecde/main.py", line 17
access_matrix[user] = {}
^
IndentationError: expected an indented block after 'for' statement on line 16
программа
import random
# Создаем список пользователей: конкретные имена + автоматически сгенерированные пользователи
specific_users = ['Ivan', 'Sergey', 'Boris', 'Grigory']
generated_users = [f'User{i + 1}' for i in range(4)] # 4 автоматически сгенерированных пользователей
users = specific_users + generated_users
#Количество объектов (4 объекта)
objects = [f'Object{i + 1}' for i in range(4)]
#Возможные права доступа
operations = ['read', 'write', 'grant', 'record']
#Матрица доступа
access_matrix = {}
#Генерация прав доступа
for user in users:
access_matrix[user] = {}
for obj in objects:
if user == 'Sergey': # "Sergey" - администратор, имеет все права
access_matrix[user][obj] = ['read', 'write', 'grant']
else: # Случайные права для остальных пользователей
access_matrix[user][obj] = random.sample(operations, random.randint(0, 4))
#Функция идентификации пользователя
def identify_user():
user = input("Введите идентификатор пользователя: "
if user in users:
print(f"Добро пожаловать, {user}!"
return user
else:
print("Идентификация не удалась."
return None
#Функция отображения прав доступа в табличном виде
def show_access_rights(user):
print(f"\nПрава доступа для пользователя {user}:"
print(f"{'Объект':<10} | {'Права доступа'}"
print("-" * 30)
for obj, rights in access_matrix[user].items():
rights_str = ', '.join(rights) if rights else 'Нет доступа'
print(f"{obj:<10} | {rights_str}"
print("-" * 30)
#Главный цикл программы
while True:
user = None
while not user:
user = identify_user()
show_access_rights(user)
# Предложение продолжить или выйти
action = input("Введите 'back' для повторной идентификации или 'quit' для выхода: ".strip().lower()
if action == 'quit':
print("Сессия завершена."
break
elif action == 'back':
print("Возвращаемся к идентификации...\n"
access_matrix[user] = {}
^
IndentationError: expected an indented block after 'for' statement on line 16
программа
import random
# Создаем список пользователей: конкретные имена + автоматически сгенерированные пользователи
specific_users = ['Ivan', 'Sergey', 'Boris', 'Grigory']
generated_users = [f'User{i + 1}' for i in range(4)] # 4 автоматически сгенерированных пользователей
users = specific_users + generated_users
#Количество объектов (4 объекта)
objects = [f'Object{i + 1}' for i in range(4)]
#Возможные права доступа
operations = ['read', 'write', 'grant', 'record']
#Матрица доступа
access_matrix = {}
#Генерация прав доступа
for user in users:
access_matrix[user] = {}
for obj in objects:
if user == 'Sergey': # "Sergey" - администратор, имеет все права
access_matrix[user][obj] = ['read', 'write', 'grant']
else: # Случайные права для остальных пользователей
access_matrix[user][obj] = random.sample(operations, random.randint(0, 4))
#Функция идентификации пользователя
def identify_user():
user = input("Введите идентификатор пользователя: "
if user in users:
print(f"Добро пожаловать, {user}!"
return user
else:
print("Идентификация не удалась."
return None
#Функция отображения прав доступа в табличном виде
def show_access_rights(user):
print(f"\nПрава доступа для пользователя {user}:"
print(f"{'Объект':<10} | {'Права доступа'}"
print("-" * 30)
for obj, rights in access_matrix[user].items():
rights_str = ', '.join(rights) if rights else 'Нет доступа'
print(f"{obj:<10} | {rights_str}"
print("-" * 30)
#Главный цикл программы
while True:
user = None
while not user:
user = identify_user()
show_access_rights(user)
# Предложение продолжить или выйти
action = input("Введите 'back' для повторной идентификации или 'quit' для выхода: ".strip().lower()
if action == 'quit':
print("Сессия завершена."
break
elif action == 'back':
print("Возвращаемся к идентификации...\n"