Вам нужно для каждого пользователя хранить его роль. В простейшем случае вы можете хранить нолик или единичку - нолик это простой пользователь, единичка - админ.
Дальше, когда вы рендерите страницу, вы вывод кнопки обрамляете в условие - если у пользователя роль единичка, то показываем, иначе нет. Вот так:
<?if($user["admin"] == 1):?>
<button>Delete record</button>
<?endif?>
Хотя единичка это самый тривиальный случай и чаще требуется создавать полноценную систему авторизации. Например концепция авторизации RBAC - работает с ролями и разрешениями. Есть список разрешений, например:
- создавать запись
- редактировать запись свою
- удалять запись свою
- редактировать любую запись
- удалять любую запись
- назначать пользователя модератором
- снимать с пользователя роль модератора
И есть набор ролей
- пользователь
- модератор
- админ
вполне очевидно, какая роль какими правами должна обладать. Но есть одна оссобенность, роли могут наследоваться. Т.е. модератор является так же и пользователем. А админ является модератором. Это логично. Поэтому вводится иерархия ролей.
Все эти данные о ролях мы конечно-же храним в БД. Итого имеем 3 таблицы:
- таблица прав
- таблица ролей
- таблица связи ролей и прав
Мы выделяем отдельную таблицу под связи ролей и прав т.к. одно право может быть у нескольких ролей, но и у каждой роли много своих прав.
Но мы не делаем отдельную таблицу для того чтобы связывать роли, т.к. каждая роль может иметь только одну родительскую роль.
В конце концов, мы должны прикрепить роль к пользователю. Мы можем разрешать пользователю иметь одну роль, или сразу несколько. И тут мы либо пишем id роли прямо в таблицу пользователя, либо делаем таблицу связи пользователей с ролями.
После этого пишем код, который будет отвечать на вопрос - имеет ли этот пользователь указанное право?
Этот код смотрит на его роль/роли, ищет в них такое право, если в них нет - то ищет в родительских ролях поднимаясь всё выше и выше по дереву ролей. Если дошёл до конца и права нет - сорян, тебе сюда нельзя.
<?if(hasPermission($user, "delete_any_record") or hasPermission($user, "delete_own_record")):?>
<button>Delete record</button>
<?endif?>