2012-04-18 4 views
2

Я создал приложение на своем локальном компьютере с Web2py и работает через WSGI с SQLite. Я могу успешно развернуть свое приложение в Google App Engine, используя свой собственный домен и выполняя все перезаписи URL, которые мне нужны.Как создать новый auth_user и auth_group на Web2py в Google App Engine (GAE)?

Теперь мне нужно создать определенные административные пользователи, которые будут отвечать за обновление некоторых таблиц.

Конкретные вопросы:

  1. Есть ли способ, что я могу использовать интерфейс администратора web2py, когда мой appliation работает на GAE?
  2. Даже если я не хочу создавать новостные приложения или редактировать файлы, можно ли использовать интерфейс администрирования Web2py только для управления базой данных приложения, работающего в Google App engine?
  3. Если нет, то как такое управление пользователями выполняется при использовании Web2py в GAE?

ответ

6

Я никогда до того не использовал GAE, но я обычно делаю что-то вроде этого в моем db.py для создания начального административного пользователя:

def check_initialize(): 
    if not db().select(db.auth_user.ALL).first():   
     db.auth_user.insert(
      username = 'administrator', 
      password = db.auth_user.password.validate('admin1234')[0], 
      email = '[email protected]', 
      first_name = 'System', 
      last_name = 'Administrator', 
      is_admin = True, 
     ) 

# do initialization check 
cache.ram('db_initialized', lambda: check_initialize(), time_expire=None) 

Обратите внимание, что «is_admin» является полем я добавил к таблице auth_user, но я мог бы так же легко добавить новую запись auth_group, называемую «администраторы», а затем добавить нового пользователя в группу «администраторы», используя «auth.add_membership (1, 1)».

Для административных функций, если вы не можете получить web2py администратору рабочего (которое должно быть возможным, если вы настроите web2py пробегать HTTPS), то вы всегда можете создать свой собственный редактор, используя что-то вроде этого:

def users(): 
    form = SQLFORM.grid(db.auth_user) 
    return dict(form=form) 

Это создаст элемент управления сеткой, в котором перечислены все пользователи, и вы сможете добавлять и удалять пользователей. Вы можете сделать то же самое для db.auth_group и db.auth_membership. Возможно, вам придется немного подкорректировать его. Кроме того, вы всегда можете использовать что-то вроде этого: Instant Admin или Badmin

+0

Hello Ross! Спасибо за точный ответ. Я могу настроить интерфейс администратора через https. Теперь я попробую Instant Admin и Badmin. –