Code Duplication    Length = 28-28 lines in 2 locations

src/IPub/Permissions/Access/AnnotationChecker.php 1 location

@@ 83-110 (lines=28) @@
80
	 *
81
	 * @throws Exceptions\InvalidArgumentException
82
	 */
83
	private function checkUser($element) : bool
84
	{
85
		// Check if element has @Secured\User annotation
86
		if ($element->hasAnnotation('Secured\User')) {
87
			// Get user annotation
88
			$user = $element->getAnnotation('Secured\User');
89
90
			// Annotation is single string
91
			if (is_string($user) && in_array($user, ['loggedIn', 'guest'], TRUE)) {
92
				// User have to be logged in and is not
93
				if ($user === 'loggedIn' && $this->user->isLoggedIn() === FALSE) {
94
					return FALSE;
95
96
				// User have to be logged out and is logged in
97
				} elseif ($user === 'guest' && $this->user->isLoggedIn() === TRUE) {
98
					return FALSE;
99
				}
100
101
			// Annotation have wrong definition
102
			} else {
103
				throw new Exceptions\InvalidArgumentException('In @Security\User annotation is allowed only one from two strings: \'loggedIn\' & \'guest\'');
104
			}
105
106
			return TRUE;
107
		}
108
109
		return TRUE;
110
	}
111
112
	/**
113
	 * @param UI\ComponentReflection|UI\MethodReflection|Nette\Reflection\ClassType|Nette\Reflection\Method|\Reflector $element

src/IPub/Permissions/Access/LatteChecker.php 1 location

@@ 81-108 (lines=28) @@
78
	 *
79
	 * @throws Exceptions\InvalidArgumentException
80
	 */
81
	private function checkUser(Utils\ArrayHash $element) : bool
82
	{
83
		// Check if element has user parameter
84
		if ($element->offsetExists('user')) {
85
			// Get user parameter
86
			$user = $element->offsetGet('user');
87
88
			// Parameter is single string
89
			if (is_string($user) && in_array($user, ['loggedIn', 'guest'], TRUE)) {
90
				// User have to be logged in and is not
91
				if ($user === 'loggedIn' && $this->user->isLoggedIn() === FALSE) {
92
					return FALSE;
93
94
				// User have to be logged out and is logged in
95
				} elseif ($user === 'guest' && $this->user->isLoggedIn() === TRUE) {
96
					return FALSE;
97
				}
98
99
			// Parameter have multiple definitions
100
			} else {
101
				throw new Exceptions\InvalidArgumentException('In parameter \'user\' is allowed only one from two strings: \'loggedIn\' & \'guest\'');
102
			}
103
104
			return TRUE;
105
		}
106
107
		return TRUE;
108
	}
109
110
	/**
111
	 * @param Utils\ArrayHash $element