import grp, os, pwd

def pam_sm_open_session(pamh, flags, args):

  # http://stackoverflow.com/questions/9323834/python-how-to-get-group-ids-of-one-username-like-id-gn
  groups = set(itm.gr_name for itm in grp.getgrall() if pamh.get_user() in itm.gr_mem)
  groups.add(grp.getgrgid(pwd.getpwnam(pamh.get_user()).pw_gid).gr_name)

  if 'users' in groups:
    if 'sudo' in groups or 'www-data' in groups:
      os.system('setquota {} 0 0 0 0 /'.format(pamh.get_user()))

    else:
      os.system('setquota {} 204800 409600 0 0 /'.format(pamh.get_user()))

  return pamh.PAM_SUCCESS
