我正在气流中实现Google身份验证(版本1.9.0)。在google_auth.py中,气流将每个用户都创建为超级用户
if (!NotificationUtils.isAppIsInBackground(getApplicationContext())){
Intent intent = new Intent(Config.PUSH_NOTIFICATION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
intent.putExtra("Plan","fromFCM");
broadcastManager.sendBroadcast(intent);
Bitmap bitmapIcon = BitmapFactory.decodeResource(getResources(), R.drawable.notify_app_icon);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBulder = new NotificationCompat.Builder(this);
notificationBulder.setContentTitle(notificationData.getTitle());
notificationBulder.setContentText(notificationData.getTextMessage());
notificationBulder.setSmallIcon(R.drawable.notify_app_icon);
notificationBulder.setLargeIcon(bitmapIcon);
notificationBulder.setStyle(new NotificationCompat.BigTextStyle().bigText(notificationData.getTextMessage()));
notificationBulder.setAutoCancel(true);
//notificationBulder.setSmallIcon(R.mipmap.ic_launcher);
notificationBulder.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager != null) {
notificationManager.notify(notificationData.getId(), notificationBulder.build());
/* Plan_Details plan_details = new Plan_Details();
plan_details.refreshPlan();*/
}
我只想将超级用户权限仅授予某些团队成员。因此,我在def is_superuser(self):
'''Access all the things'''
return True
类中编辑了函数is_superuser()
,如下所示:
GoogleUser
是否有更好的方法可以做到这一点,或者气流可以立即提供此功能?我无法找到有关使用Google OAuth创建具有有限权限的用户的任何信息。
答案 0 :(得分:0)
在使用RBAC的较新版本之前,气流基本上只是在没有任何授权层的情况下处理身份验证。超级用户标志就是它。
我可以通过airflow.cfg对其进行配置,而不是对其进行硬编码。这样,您不必每次都要更新列表时都修改代码,只需更新配置并重新启动即可。
因此,在您的airflow.cfg中,说出“。[core]
”块,添加super_users = member1@xyz.com,member2@xyz.com
然后执行您的功能
def is_superuser(self):
return self.user.email in configuration.get("core", "super_users").split(",")