--- /dev/null
+@core @core_user
+Feature: Access to preferences page
+ In order to view the preferences page
+ As a user
+ I need global permissions to view the page.
+
+ Background:
+ Given the following "users" exist:
+ | username | firstname | lastname | email |
+ | student1 | Student | 1 | student1@example.com |
+ | student2 | Student | 2 | student2@example.com |
+ | manager1 | Manager | 1 | manager1@example.com |
+ | teacher1 | Teacher | 1 | teacher1@example.com |
+ | parent | Parent | 1 | parent1@example.com |
+ And the following "courses" exist:
+ | fullname | shortname | format |
+ | Course 1 | C1 | topics |
+ | Course 2 | C2 | topics |
+ And the following "course enrolments" exist:
+ | user | course | role |
+ | student1 | C1 | student |
+ | student2 | C1 | student |
+ | teacher1 | C1 | editingteacher |
+ And the following "system role assigns" exist:
+ | user | course | role |
+ | manager1 | Acceptance test site | manager |
+
+ Scenario: A student and teacher with normal permissions can not view another user's permissions page.
+ Given I log in as "student1"
+ And I follow "Course 1"
+ And I navigate to "Participants" node in "Current course > C1"
+ And I follow "Student 2"
+ And I should not see "Preferences" in the "#region-main" "css_element"
+ And I log out
+ And I log in as "teacher1"
+ And I follow "Course 1"
+ When I navigate to "Participants" node in "Current course > C1"
+ And I follow "Student 2"
+ Then I should not see "Preferences" in the "#region-main" "css_element"
+
+ Scenario: Administrators and Managers can view another user's permissions page.
+ Given I log in as "admin"
+ And I am on site homepage
+ And I follow "Course 1"
+ And I navigate to "Participants" node in "Current course > C1"
+ And I follow "Student 2"
+ And I should see "Preferences" in the "#region-main" "css_element"
+ And I log out
+ And I log in as "manager1"
+ And I am on site homepage
+ And I follow "Course 1"
+ When I navigate to "Participants" node in "Current course > C1"
+ And I follow "Student 2"
+ Then I should see "Preferences" in the "#region-main" "css_element"
+
+ @javascript
+ Scenario: A user with the appropriate permissions can view another user's permissions page.
+ Given I log in as "admin"
+ And I am on site homepage
+ And I follow "Turn editing on"
+ And I add the "Mentees" block
+ And I navigate to "Define roles" node in "Site administration > Users > Permissions"
+ And I click on "Add a new role" "button"
+ And I click on "Continue" "button"
+ And I set the following fields to these values:
+ | Short name | Parent |
+ | Custom full name | Parent |
+ | contextlevel30 | 1 |
+ | moodle/user:editprofile | 1 |
+ | moodle/user:viewalldetails | 1 |
+ | moodle/user:viewuseractivitiesreport | 1 |
+ | moodle/user:viewdetails | 1 |
+ And I click on "Create this role" "button"
+ And I navigate to "Browse list of users" node in "Site administration > Users > Accounts"
+ And I follow "Student 1"
+ And I click on "Preferences" "link" in the ".profile_tree" "css_element"
+ And I follow "Assign roles relative to this user"
+ And I follow "Parent"
+ And I click on "//select[@id='addselect']/descendant::option[contains(., 'Parent 1 (parent1@example.com)')]" "xpath_element"
+ And I click on "Add" "button"
+ And I log out
+ And I log in as "parent"
+ And I am on site homepage
+ When I follow "Student 1"
+ Then I should see "Preferences" in the "#region-main" "css_element"