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")
возможно у меня могут быть ошибки, поскольку я не понял, где находится конец цикла, как и сама программа 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")