This is an automated email from the ASF dual-hosted git repository.

kaxilnaik pushed a commit to branch v1-10-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit d2c423ab2c71f02eff928143cf4633a67656fee8
Author: Jed Cunningham <[email protected]>
AuthorDate: Sun Sep 6 12:26:08 2020 -0400

    Add permission "extra_links" for Viewer role and above (#10719)
    
    This change adds 'can extra links on Airflow' to the Viewer role and above. 
Currently, only Admins can see extra links by default.
    
    (cherry picked from commit 59f9a4116a310f7cf675c09a0aba49b186494d9b)
---
 airflow/www_rbac/security.py |  1 +
 tests/www_rbac/test_views.py | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/airflow/www_rbac/security.py b/airflow/www_rbac/security.py
index 0108081..d44cf70 100644
--- a/airflow/www_rbac/security.py
+++ b/airflow/www_rbac/security.py
@@ -112,6 +112,7 @@ class AirflowSecurityManager(SecurityManager, LoggingMixin):
         'can_rendered',
         'can_pickle_info',
         'can_version',
+        'can_extra_links'
     }
 
     USER_PERMS = {
diff --git a/tests/www_rbac/test_views.py b/tests/www_rbac/test_views.py
index 4e06b57..9b019bd 100644
--- a/tests/www_rbac/test_views.py
+++ b/tests/www_rbac/test_views.py
@@ -2322,6 +2322,25 @@ class TestExtraLinks(TestBase):
 
     def tearDown(self):
         super(TestExtraLinks, self).tearDown()
+        self.logout()
+        self.login()
+
+    def login(self):
+        role_viewer = self.appbuilder.sm.find_role('Viewer')
+        test_viewer = self.appbuilder.sm.find_user(username='test_viewer')
+        if not test_viewer:
+            self.appbuilder.sm.add_user(
+                username='test_viewer',
+                first_name='test_viewer',
+                last_name='test_viewer',
+                email='[email protected]',
+                role=role_viewer,
+                password='test_viewer')
+
+        return self.client.post('/login/', data=dict(
+            username='test_viewer',
+            password='test_viewer'
+        ))
 
     @mock.patch('airflow.www_rbac.views.dagbag.get_dag')
     def test_extra_links_works(self, get_dag_function):

Reply via email to