Completed
Push — master ( 247b25...4111bd )
by Thomas
26:36 queued 10s
created
lib/public/Color.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -133,9 +133,9 @@
 block discarded – undo
133 133
 	 */
134 134
 	public function alphaBlending(float $opacity, Color $source): Color {
135 135
 		return new Color(
136
-			(int)((1 - $opacity) * $source->red() + $opacity * $this->red()),
137
-			(int)((1 - $opacity) * $source->green() + $opacity * $this->green()),
138
-			(int)((1 - $opacity) * $source->blue() + $opacity * $this->blue())
136
+			(int) ((1 - $opacity) * $source->red() + $opacity * $this->red()),
137
+			(int) ((1 - $opacity) * $source->green() + $opacity * $this->green()),
138
+			(int) ((1 - $opacity) * $source->blue() + $opacity * $this->blue())
139 139
 		);
140 140
 	}
141 141
 
Please login to merge, or discard this patch.
Indentation   +114 added lines, -114 removed lines patch added patch discarded remove patch
@@ -10,129 +10,129 @@
 block discarded – undo
10 10
  * @since 25.0.0
11 11
  */
12 12
 class Color {
13
-	private int $r;
14
-	private int $g;
15
-	private int $b;
13
+    private int $r;
14
+    private int $g;
15
+    private int $b;
16 16
 
17
-	/**
18
-	 * @since 25.0.0
19
-	 */
20
-	public function __construct($r, $g, $b) {
21
-		$this->r = $r;
22
-		$this->g = $g;
23
-		$this->b = $b;
24
-	}
17
+    /**
18
+     * @since 25.0.0
19
+     */
20
+    public function __construct($r, $g, $b) {
21
+        $this->r = $r;
22
+        $this->g = $g;
23
+        $this->b = $b;
24
+    }
25 25
 
26
-	/**
27
-	 * Returns the red color component of this color as an int from 0 to 255
28
-	 *
29
-	 * @since 25.0.0
30
-	 */
31
-	public function red(): int {
32
-		return $this->r;
33
-	}
26
+    /**
27
+     * Returns the red color component of this color as an int from 0 to 255
28
+     *
29
+     * @since 25.0.0
30
+     */
31
+    public function red(): int {
32
+        return $this->r;
33
+    }
34 34
 
35
-	/**
36
-	 * Returns the red color component of this color as a float from 0 to 1
37
-	 *
38
-	 * @since 25.0.0
39
-	 */
40
-	public function redF(): float {
41
-		return $this->r / 255;
42
-	}
35
+    /**
36
+     * Returns the red color component of this color as a float from 0 to 1
37
+     *
38
+     * @since 25.0.0
39
+     */
40
+    public function redF(): float {
41
+        return $this->r / 255;
42
+    }
43 43
 
44
-	/**
45
-	 * Returns the green color component of this color as an int from 0 to 255
46
-	 *
47
-	 * @since 25.0.0
48
-	 */
49
-	public function green(): int {
50
-		return $this->g;
51
-	}
44
+    /**
45
+     * Returns the green color component of this color as an int from 0 to 255
46
+     *
47
+     * @since 25.0.0
48
+     */
49
+    public function green(): int {
50
+        return $this->g;
51
+    }
52 52
 
53
-	/**
54
-	 * Returns the green color component of this color as a float from 0 to 1
55
-	 *
56
-	 * @since 25.0.0
57
-	 */
58
-	public function greenF(): float {
59
-		return $this->g / 255;
60
-	}
53
+    /**
54
+     * Returns the green color component of this color as a float from 0 to 1
55
+     *
56
+     * @since 25.0.0
57
+     */
58
+    public function greenF(): float {
59
+        return $this->g / 255;
60
+    }
61 61
 
62
-	/**
63
-	 * Returns the green blue component of this color as an int from 0 to 255
64
-	 *
65
-	 * @since 25.0.0
66
-	 */
67
-	public function blue(): int {
68
-		return $this->b;
69
-	}
62
+    /**
63
+     * Returns the green blue component of this color as an int from 0 to 255
64
+     *
65
+     * @since 25.0.0
66
+     */
67
+    public function blue(): int {
68
+        return $this->b;
69
+    }
70 70
 
71
-	/**
72
-	 * Returns the blue color component of this color as a float from 0 to 1
73
-	 *
74
-	 * @since 25.0.0
75
-	 */
76
-	public function blueF(): float {
77
-		return $this->g / 255;
78
-	}
71
+    /**
72
+     * Returns the blue color component of this color as a float from 0 to 1
73
+     *
74
+     * @since 25.0.0
75
+     */
76
+    public function blueF(): float {
77
+        return $this->g / 255;
78
+    }
79 79
 
80
-	/**
81
-	 * Returns the name of the color in the format "#RRGGBB"; i.e. a "#" character followed by three two-digit hexadecimal numbers.
82
-	 *
83
-	 * @since 25.0.0
84
-	 */
85
-	public function name(): string {
86
-		return sprintf('#%02x%02x%02x', $this->r, $this->g, $this->b);
87
-	}
80
+    /**
81
+     * Returns the name of the color in the format "#RRGGBB"; i.e. a "#" character followed by three two-digit hexadecimal numbers.
82
+     *
83
+     * @since 25.0.0
84
+     */
85
+    public function name(): string {
86
+        return sprintf('#%02x%02x%02x', $this->r, $this->g, $this->b);
87
+    }
88 88
 
89
-	/**
90
-	 * Mix two colors
91
-	 *
92
-	 * @param int $steps the number of intermediate colors that should be generated for the palette
93
-	 * @param Color $color1 the first color
94
-	 * @param Color $color2 the second color
95
-	 * @return list<Color>
96
-	 * @since 25.0.0
97
-	 */
98
-	public static function mixPalette(int $steps, Color $color1, Color $color2): array {
99
-		$palette = [$color1];
100
-		$step = self::stepCalc($steps, [$color1, $color2]);
101
-		for ($i = 1; $i < $steps; $i++) {
102
-			$r = intval($color1->red() + ($step[0] * $i));
103
-			$g = intval($color1->green() + ($step[1] * $i));
104
-			$b = intval($color1->blue() + ($step[2] * $i));
105
-			$palette[] = new Color($r, $g, $b);
106
-		}
107
-		return $palette;
108
-	}
89
+    /**
90
+     * Mix two colors
91
+     *
92
+     * @param int $steps the number of intermediate colors that should be generated for the palette
93
+     * @param Color $color1 the first color
94
+     * @param Color $color2 the second color
95
+     * @return list<Color>
96
+     * @since 25.0.0
97
+     */
98
+    public static function mixPalette(int $steps, Color $color1, Color $color2): array {
99
+        $palette = [$color1];
100
+        $step = self::stepCalc($steps, [$color1, $color2]);
101
+        for ($i = 1; $i < $steps; $i++) {
102
+            $r = intval($color1->red() + ($step[0] * $i));
103
+            $g = intval($color1->green() + ($step[1] * $i));
104
+            $b = intval($color1->blue() + ($step[2] * $i));
105
+            $palette[] = new Color($r, $g, $b);
106
+        }
107
+        return $palette;
108
+    }
109 109
 
110
-	/**
111
-	 * Alpha blend another color with a given opacity to this color
112
-	 *
113
-	 * @return Color The new color
114
-	 * @since 25.0.0
115
-	 */
116
-	public function alphaBlending(float $opacity, Color $source): Color {
117
-		return new Color(
118
-			(int)((1 - $opacity) * $source->red() + $opacity * $this->red()),
119
-			(int)((1 - $opacity) * $source->green() + $opacity * $this->green()),
120
-			(int)((1 - $opacity) * $source->blue() + $opacity * $this->blue())
121
-		);
122
-	}
110
+    /**
111
+     * Alpha blend another color with a given opacity to this color
112
+     *
113
+     * @return Color The new color
114
+     * @since 25.0.0
115
+     */
116
+    public function alphaBlending(float $opacity, Color $source): Color {
117
+        return new Color(
118
+            (int)((1 - $opacity) * $source->red() + $opacity * $this->red()),
119
+            (int)((1 - $opacity) * $source->green() + $opacity * $this->green()),
120
+            (int)((1 - $opacity) * $source->blue() + $opacity * $this->blue())
121
+        );
122
+    }
123 123
 
124
-	/**
125
-	 * Calculate steps between two Colors
126
-	 * @param int $steps start color
127
-	 * @param Color[] $ends end color
128
-	 * @return array{0: float, 1: float, 2: float} [r,g,b] steps for each color to go from $steps to $ends
129
-	 * @since 25.0.0
130
-	 */
131
-	private static function stepCalc(int $steps, array $ends): array {
132
-		$step = [];
133
-		$step[0] = ($ends[1]->red() - $ends[0]->red()) / $steps;
134
-		$step[1] = ($ends[1]->green() - $ends[0]->green()) / $steps;
135
-		$step[2] = ($ends[1]->blue() - $ends[0]->blue()) / $steps;
136
-		return $step;
137
-	}
124
+    /**
125
+     * Calculate steps between two Colors
126
+     * @param int $steps start color
127
+     * @param Color[] $ends end color
128
+     * @return array{0: float, 1: float, 2: float} [r,g,b] steps for each color to go from $steps to $ends
129
+     * @since 25.0.0
130
+     */
131
+    private static function stepCalc(int $steps, array $ends): array {
132
+        $step = [];
133
+        $step[0] = ($ends[1]->red() - $ends[0]->red()) / $steps;
134
+        $step[1] = ($ends[1]->green() - $ends[0]->green()) / $steps;
135
+        $step[2] = ($ends[1]->blue() - $ends[0]->blue()) / $steps;
136
+        return $step;
137
+    }
138 138
 }
Please login to merge, or discard this patch.
lib/private/Avatar/PlaceholderAvatar.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -112,9 +112,9 @@  discard block
 block discarded – undo
112 112
 		$ext = 'png';
113 113
 
114 114
 		if ($size === -1) {
115
-			$path = 'avatar-placeholder' . ($darkTheme ? '-dark' : '') . '.' . $ext;
115
+			$path = 'avatar-placeholder'.($darkTheme ? '-dark' : '').'.'.$ext;
116 116
 		} else {
117
-			$path = 'avatar-placeholder' . ($darkTheme ? '-dark' : '') . '.' . $size . '.' . $ext;
117
+			$path = 'avatar-placeholder'.($darkTheme ? '-dark' : '').'.'.$size.'.'.$ext;
118 118
 		}
119 119
 
120 120
 		try {
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
 				$file = $this->folder->newFile($path);
133 133
 				$file->putContent($data);
134 134
 			} catch (NotPermittedException $e) {
135
-				$this->logger->error('Failed to save avatar placeholder for ' . $this->user->getUID());
135
+				$this->logger->error('Failed to save avatar placeholder for '.$this->user->getUID());
136 136
 				throw new NotFoundException();
137 137
 			}
138 138
 		}
Please login to merge, or discard this patch.
Indentation   +107 added lines, -107 removed lines patch added patch discarded remove patch
@@ -25,111 +25,111 @@
 block discarded – undo
25 25
  * for faster retrieval, unlike the GuestAvatar.
26 26
  */
27 27
 class PlaceholderAvatar extends Avatar {
28
-	public function __construct(
29
-		private ISimpleFolder $folder,
30
-		private User $user,
31
-		IConfig $config,
32
-		LoggerInterface $logger,
33
-	) {
34
-		parent::__construct($config, $logger);
35
-	}
36
-
37
-	/**
38
-	 * Check if an avatar exists for the user
39
-	 */
40
-	public function exists(): bool {
41
-		return true;
42
-	}
43
-
44
-	/**
45
-	 * Sets the users avatar.
46
-	 *
47
-	 * @param IImage|resource|string $data An image object, imagedata or path to set a new avatar
48
-	 * @throws \Exception if the provided file is not a jpg or png image
49
-	 * @throws \Exception if the provided image is not valid
50
-	 * @throws NotSquareException if the image is not square
51
-	 */
52
-	public function set($data): void {
53
-		// unimplemented for placeholder avatars
54
-	}
55
-
56
-	/**
57
-	 * Removes the users avatar.
58
-	 */
59
-	public function remove(bool $silent = false): void {
60
-		$avatars = $this->folder->getDirectoryListing();
61
-
62
-		foreach ($avatars as $avatar) {
63
-			$avatar->delete();
64
-		}
65
-	}
66
-
67
-	/**
68
-	 * Returns the avatar for an user.
69
-	 *
70
-	 * If there is no avatar file yet, one is generated.
71
-	 *
72
-	 * @throws NotFoundException
73
-	 * @throws \OCP\Files\NotPermittedException
74
-	 * @throws \OCP\PreConditionNotMetException
75
-	 */
76
-	public function getFile(int $size, bool $darkTheme = false): ISimpleFile {
77
-		$ext = 'png';
78
-
79
-		if ($size === -1) {
80
-			$path = 'avatar-placeholder' . ($darkTheme ? '-dark' : '') . '.' . $ext;
81
-		} else {
82
-			$path = 'avatar-placeholder' . ($darkTheme ? '-dark' : '') . '.' . $size . '.' . $ext;
83
-		}
84
-
85
-		try {
86
-			$file = $this->folder->getFile($path);
87
-		} catch (NotFoundException $e) {
88
-			if ($size <= 0) {
89
-				throw new NotFoundException;
90
-			}
91
-
92
-			$userDisplayName = $this->getDisplayName();
93
-			if (!$data = $this->generateAvatarFromSvg($userDisplayName, $size, $darkTheme)) {
94
-				$data = $this->generateAvatar($userDisplayName, $size, $darkTheme);
95
-			}
96
-
97
-			try {
98
-				$file = $this->folder->newFile($path);
99
-				$file->putContent($data);
100
-			} catch (NotPermittedException $e) {
101
-				$this->logger->error('Failed to save avatar placeholder for ' . $this->user->getUID());
102
-				throw new NotFoundException();
103
-			}
104
-		}
105
-
106
-		return $file;
107
-	}
108
-
109
-	/**
110
-	 * Returns the user display name.
111
-	 */
112
-	public function getDisplayName(): string {
113
-		return $this->user->getDisplayName();
114
-	}
115
-
116
-	/**
117
-	 * Handles user changes.
118
-	 *
119
-	 * @param string $feature The changed feature
120
-	 * @param mixed $oldValue The previous value
121
-	 * @param mixed $newValue The new value
122
-	 * @throws NotPermittedException
123
-	 * @throws \OCP\PreConditionNotMetException
124
-	 */
125
-	public function userChanged(string $feature, $oldValue, $newValue): void {
126
-		$this->remove();
127
-	}
128
-
129
-	/**
130
-	 * Check if the avatar of a user is a custom uploaded one
131
-	 */
132
-	public function isCustomAvatar(): bool {
133
-		return false;
134
-	}
28
+    public function __construct(
29
+        private ISimpleFolder $folder,
30
+        private User $user,
31
+        IConfig $config,
32
+        LoggerInterface $logger,
33
+    ) {
34
+        parent::__construct($config, $logger);
35
+    }
36
+
37
+    /**
38
+     * Check if an avatar exists for the user
39
+     */
40
+    public function exists(): bool {
41
+        return true;
42
+    }
43
+
44
+    /**
45
+     * Sets the users avatar.
46
+     *
47
+     * @param IImage|resource|string $data An image object, imagedata or path to set a new avatar
48
+     * @throws \Exception if the provided file is not a jpg or png image
49
+     * @throws \Exception if the provided image is not valid
50
+     * @throws NotSquareException if the image is not square
51
+     */
52
+    public function set($data): void {
53
+        // unimplemented for placeholder avatars
54
+    }
55
+
56
+    /**
57
+     * Removes the users avatar.
58
+     */
59
+    public function remove(bool $silent = false): void {
60
+        $avatars = $this->folder->getDirectoryListing();
61
+
62
+        foreach ($avatars as $avatar) {
63
+            $avatar->delete();
64
+        }
65
+    }
66
+
67
+    /**
68
+     * Returns the avatar for an user.
69
+     *
70
+     * If there is no avatar file yet, one is generated.
71
+     *
72
+     * @throws NotFoundException
73
+     * @throws \OCP\Files\NotPermittedException
74
+     * @throws \OCP\PreConditionNotMetException
75
+     */
76
+    public function getFile(int $size, bool $darkTheme = false): ISimpleFile {
77
+        $ext = 'png';
78
+
79
+        if ($size === -1) {
80
+            $path = 'avatar-placeholder' . ($darkTheme ? '-dark' : '') . '.' . $ext;
81
+        } else {
82
+            $path = 'avatar-placeholder' . ($darkTheme ? '-dark' : '') . '.' . $size . '.' . $ext;
83
+        }
84
+
85
+        try {
86
+            $file = $this->folder->getFile($path);
87
+        } catch (NotFoundException $e) {
88
+            if ($size <= 0) {
89
+                throw new NotFoundException;
90
+            }
91
+
92
+            $userDisplayName = $this->getDisplayName();
93
+            if (!$data = $this->generateAvatarFromSvg($userDisplayName, $size, $darkTheme)) {
94
+                $data = $this->generateAvatar($userDisplayName, $size, $darkTheme);
95
+            }
96
+
97
+            try {
98
+                $file = $this->folder->newFile($path);
99
+                $file->putContent($data);
100
+            } catch (NotPermittedException $e) {
101
+                $this->logger->error('Failed to save avatar placeholder for ' . $this->user->getUID());
102
+                throw new NotFoundException();
103
+            }
104
+        }
105
+
106
+        return $file;
107
+    }
108
+
109
+    /**
110
+     * Returns the user display name.
111
+     */
112
+    public function getDisplayName(): string {
113
+        return $this->user->getDisplayName();
114
+    }
115
+
116
+    /**
117
+     * Handles user changes.
118
+     *
119
+     * @param string $feature The changed feature
120
+     * @param mixed $oldValue The previous value
121
+     * @param mixed $newValue The new value
122
+     * @throws NotPermittedException
123
+     * @throws \OCP\PreConditionNotMetException
124
+     */
125
+    public function userChanged(string $feature, $oldValue, $newValue): void {
126
+        $this->remove();
127
+    }
128
+
129
+    /**
130
+     * Check if the avatar of a user is a custom uploaded one
131
+     */
132
+    public function isCustomAvatar(): bool {
133
+        return false;
134
+    }
135 135
 }
Please login to merge, or discard this patch.
lib/public/Profile/BeforeTemplateRenderedEvent.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -34,21 +34,21 @@
 block discarded – undo
34 34
  * @since 25.0.0
35 35
  */
36 36
 class BeforeTemplateRenderedEvent extends Event {
37
-	private string $userId;
37
+    private string $userId;
38 38
 
39
-	/**
40
-	 * @since 25.0.0
41
-	 */
42
-	public function __construct(string $userId) {
43
-		parent::__construct();
39
+    /**
40
+     * @since 25.0.0
41
+     */
42
+    public function __construct(string $userId) {
43
+        parent::__construct();
44 44
 
45
-		$this->userId = $userId;
46
-	}
45
+        $this->userId = $userId;
46
+    }
47 47
 
48
-	/**
49
-	 * @since 25.0.0
50
-	 */
51
-	public function getUserId(): string {
52
-		return $this->userId;
53
-	}
48
+    /**
49
+     * @since 25.0.0
50
+     */
51
+    public function getUserId(): string {
52
+        return $this->userId;
53
+    }
54 54
 }
Please login to merge, or discard this patch.
apps/settings/templates/settings/personal/personal.info.php 2 patches
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -27,12 +27,12 @@
 block discarded – undo
27 27
 /** @var array $_ */
28 28
 
29 29
 script('settings', [
30
-	'usersettings',
31
-	'templates',
32
-	'federationsettingsview',
33
-	'federationscopemenu',
34
-	'settings/personalInfo',
35
-	'vue-settings-personal-info',
30
+    'usersettings',
31
+    'templates',
32
+    'federationsettingsview',
33
+    'federationscopemenu',
34
+    'settings/personalInfo',
35
+    'vue-settings-personal-info',
36 36
 ]);
37 37
 ?>
38 38
 <?php if (!$_['isFairUseOfFreePushService']) : ?>
Please login to merge, or discard this patch.
Braces   +5 added lines, -2 removed lines patch added patch discarded remove patch
@@ -53,11 +53,14 @@
 block discarded – undo
53 53
 		<div class="personal-settings-setting-box personal-settings-setting-box-detail">
54 54
 			<div id="vue-details-section"></div>
55 55
 		</div>
56
-	<?php else: ?>
56
+	<?php else {
57
+    : ?>
57 58
 		<div class="personal-settings-setting-box personal-settings-setting-box-detail--without-profile">
58 59
 			<div id="vue-details-section"></div>
59 60
 		</div>
60
-	<?php endif; ?>
61
+	<?php endif;
62
+}
63
+?>
61 64
 	<div class="personal-settings-setting-box">
62 65
 		<div id="vue-displayname-section"></div>
63 66
 	</div>
Please login to merge, or discard this patch.
lib/public/Dashboard/IOptionWidget.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -30,9 +30,9 @@
 block discarded – undo
30 30
  * @since 25.0.0
31 31
  */
32 32
 interface IOptionWidget extends IWidget {
33
-	/**
34
-	 * Get additional options for the widget
35
-	 * @since 25.0.0
36
-	 */
37
-	public function getWidgetOptions(): WidgetOptions;
33
+    /**
34
+     * Get additional options for the widget
35
+     * @since 25.0.0
36
+     */
37
+    public function getWidgetOptions(): WidgetOptions;
38 38
 }
Please login to merge, or discard this patch.
lib/public/Dashboard/Model/WidgetOptions.php 1 patch
Indentation   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -29,33 +29,33 @@
 block discarded – undo
29 29
  * @since 25.0.0
30 30
  */
31 31
 class WidgetOptions {
32
-	private bool $roundItemIcons;
32
+    private bool $roundItemIcons;
33 33
 
34
-	/**
35
-	 * @param bool $roundItemIcons
36
-	 * @since 25.0.0
37
-	 */
38
-	public function __construct(bool $roundItemIcons) {
39
-		$this->roundItemIcons = $roundItemIcons;
40
-	}
34
+    /**
35
+     * @param bool $roundItemIcons
36
+     * @since 25.0.0
37
+     */
38
+    public function __construct(bool $roundItemIcons) {
39
+        $this->roundItemIcons = $roundItemIcons;
40
+    }
41 41
 
42
-	/**
43
-	 * Get the default set of options
44
-	 *
45
-	 * @return WidgetOptions
46
-	 * @since 25.0.0
47
-	 */
48
-	public static function getDefault(): WidgetOptions {
49
-		return new WidgetOptions(false);
50
-	}
42
+    /**
43
+     * Get the default set of options
44
+     *
45
+     * @return WidgetOptions
46
+     * @since 25.0.0
47
+     */
48
+    public static function getDefault(): WidgetOptions {
49
+        return new WidgetOptions(false);
50
+    }
51 51
 
52
-	/**
53
-	 * Whether the clients should render icons for widget items as round icons
54
-	 *
55
-	 * @return bool
56
-	 * @since 25.0.0
57
-	 */
58
-	public function withRoundItemIcons(): bool {
59
-		return $this->roundItemIcons;
60
-	}
52
+    /**
53
+     * Whether the clients should render icons for widget items as round icons
54
+     *
55
+     * @return bool
56
+     * @since 25.0.0
57
+     */
58
+    public function withRoundItemIcons(): bool {
59
+        return $this->roundItemIcons;
60
+    }
61 61
 }
Please login to merge, or discard this patch.
apps/settings/lib/Settings/Personal/PersonalInfo.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
 	 */
235 235
 	private function getGroups(IUser $user): array {
236 236
 		$groups = array_map(
237
-			static function (IGroup $group) {
237
+			static function(IGroup $group) {
238 238
 				return $group->getDisplayName();
239 239
 			},
240 240
 			$this->groupManager->getUserGroups($user)
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
 		];
258 258
 
259 259
 		$additionalEmails = array_map(
260
-			function (IAccountProperty $property) {
260
+			function(IAccountProperty $property) {
261 261
 				return [
262 262
 					'name' => $property->getName(),
263 263
 					'value' => $property->getValue(),
@@ -272,7 +272,7 @@  discard block
 block discarded – undo
272 272
 		$emailMap = [
273 273
 			'primaryEmail' => $systemEmail,
274 274
 			'additionalEmails' => $additionalEmails,
275
-			'notificationEmail' => (string)$account->getUser()->getPrimaryEMailAddress(),
275
+			'notificationEmail' => (string) $account->getUser()->getPrimaryEMailAddress(),
276 276
 		];
277 277
 
278 278
 		return $emailMap;
@@ -366,7 +366,7 @@  discard block
 block discarded – undo
366 366
 				default:
367 367
 					$message = $this->l->t('Verify');
368 368
 			}
369
-			$messageParameters[$property . 'Message'] = $message;
369
+			$messageParameters[$property.'Message'] = $message;
370 370
 		}
371 371
 		return $messageParameters;
372 372
 	}
Please login to merge, or discard this patch.
Indentation   +285 added lines, -285 removed lines patch added patch discarded remove patch
@@ -33,289 +33,289 @@
 block discarded – undo
33 33
 
34 34
 class PersonalInfo implements ISettings {
35 35
 
36
-	/** @var ProfileManager */
37
-	private $profileManager;
38
-
39
-	public function __construct(
40
-		private IConfig $config,
41
-		private IUserManager $userManager,
42
-		private IGroupManager $groupManager,
43
-		private IAccountManager $accountManager,
44
-		ProfileManager $profileManager,
45
-		private IAppManager $appManager,
46
-		private IFactory $l10nFactory,
47
-		private IL10N $l,
48
-		private IInitialState $initialStateService,
49
-		private IManager $manager,
50
-	) {
51
-		$this->profileManager = $profileManager;
52
-	}
53
-
54
-	public function getForm(): TemplateResponse {
55
-		$federationEnabled = $this->appManager->isEnabledForUser('federation');
56
-		$federatedFileSharingEnabled = $this->appManager->isEnabledForUser('federatedfilesharing');
57
-		$lookupServerUploadEnabled = false;
58
-		if ($federatedFileSharingEnabled) {
59
-			/** @var FederatedShareProvider $shareProvider */
60
-			$shareProvider = Server::get(FederatedShareProvider::class);
61
-			$lookupServerUploadEnabled = $shareProvider->isLookupServerUploadEnabled();
62
-		}
63
-
64
-		$uid = \OC_User::getUser();
65
-		$user = $this->userManager->get($uid);
66
-		$account = $this->accountManager->getAccount($user);
67
-
68
-		// make sure FS is setup before querying storage related stuff...
69
-		\OC_Util::setupFS($user->getUID());
70
-
71
-		$storageInfo = \OC_Helper::getStorageInfo('/');
72
-		if ($storageInfo['quota'] === FileInfo::SPACE_UNLIMITED) {
73
-			$totalSpace = $this->l->t('Unlimited');
74
-		} else {
75
-			$totalSpace = Util::humanFileSize($storageInfo['total']);
76
-		}
77
-
78
-		$messageParameters = $this->getMessageParameters($account);
79
-
80
-		$parameters = [
81
-			'lookupServerUploadEnabled' => $lookupServerUploadEnabled,
82
-			'isFairUseOfFreePushService' => $this->isFairUseOfFreePushService(),
83
-			'profileEnabledGlobally' => $this->profileManager->isProfileEnabled(),
84
-		] + $messageParameters;
85
-
86
-		$personalInfoParameters = [
87
-			'userId' => $uid,
88
-			'avatar' => $this->getProperty($account, IAccountManager::PROPERTY_AVATAR),
89
-			'groups' => $this->getGroups($user),
90
-			'quota' => $storageInfo['quota'],
91
-			'totalSpace' => $totalSpace,
92
-			'usage' => Util::humanFileSize($storageInfo['used']),
93
-			'usageRelative' => round($storageInfo['relative']),
94
-			'displayName' => $this->getProperty($account, IAccountManager::PROPERTY_DISPLAYNAME),
95
-			'emailMap' => $this->getEmailMap($account),
96
-			'phone' => $this->getProperty($account, IAccountManager::PROPERTY_PHONE),
97
-			'defaultPhoneRegion' => $this->config->getSystemValueString('default_phone_region'),
98
-			'location' => $this->getProperty($account, IAccountManager::PROPERTY_ADDRESS),
99
-			'website' => $this->getProperty($account, IAccountManager::PROPERTY_WEBSITE),
100
-			'twitter' => $this->getProperty($account, IAccountManager::PROPERTY_TWITTER),
101
-			'bluesky' => $this->getProperty($account, IAccountManager::PROPERTY_BLUESKY),
102
-			'fediverse' => $this->getProperty($account, IAccountManager::PROPERTY_FEDIVERSE),
103
-			'languageMap' => $this->getLanguageMap($user),
104
-			'localeMap' => $this->getLocaleMap($user),
105
-			'profileEnabledGlobally' => $this->profileManager->isProfileEnabled(),
106
-			'profileEnabled' => $this->profileManager->isProfileEnabled($user),
107
-			'organisation' => $this->getProperty($account, IAccountManager::PROPERTY_ORGANISATION),
108
-			'role' => $this->getProperty($account, IAccountManager::PROPERTY_ROLE),
109
-			'headline' => $this->getProperty($account, IAccountManager::PROPERTY_HEADLINE),
110
-			'biography' => $this->getProperty($account, IAccountManager::PROPERTY_BIOGRAPHY),
111
-			'birthdate' => $this->getProperty($account, IAccountManager::PROPERTY_BIRTHDATE),
112
-			'firstDayOfWeek' => $this->config->getUserValue($uid, 'core', AUserDataOCSController::USER_FIELD_FIRST_DAY_OF_WEEK),
113
-			'timezone' => $this->config->getUserValue($uid, 'core', 'timezone', ''),
114
-			'pronouns' => $this->getProperty($account, IAccountManager::PROPERTY_PRONOUNS),
115
-		];
116
-
117
-		$accountParameters = [
118
-			'avatarChangeSupported' => $user->canChangeAvatar(),
119
-			'displayNameChangeSupported' => $user->canChangeDisplayName(),
120
-			'emailChangeSupported' => $user->canChangeEmail(),
121
-			'federationEnabled' => $federationEnabled,
122
-			'lookupServerUploadEnabled' => $lookupServerUploadEnabled,
123
-		];
124
-
125
-		$profileParameters = [
126
-			'profileConfig' => $this->profileManager->getProfileConfigWithMetadata($user, $user),
127
-		];
128
-
129
-		$this->initialStateService->provideInitialState('profileEnabledGlobally', $this->profileManager->isProfileEnabled());
130
-		$this->initialStateService->provideInitialState('personalInfoParameters', $personalInfoParameters);
131
-		$this->initialStateService->provideInitialState('accountParameters', $accountParameters);
132
-		$this->initialStateService->provideInitialState('profileParameters', $profileParameters);
133
-
134
-		return new TemplateResponse('settings', 'settings/personal/personal.info', $parameters, '');
135
-	}
136
-
137
-	/**
138
-	 * Check if is fair use of free push service
139
-	 * @return boolean
140
-	 */
141
-	private function isFairUseOfFreePushService(): bool {
142
-		return $this->manager->isFairUseOfFreePushService();
143
-	}
144
-
145
-	/**
146
-	 * returns the property data in an
147
-	 * associative array
148
-	 */
149
-	private function getProperty(IAccount $account, string $property): array {
150
-		$property = [
151
-			'name' => $account->getProperty($property)->getName(),
152
-			'value' => $account->getProperty($property)->getValue(),
153
-			'scope' => $account->getProperty($property)->getScope(),
154
-			'verified' => $account->getProperty($property)->getVerified(),
155
-		];
156
-
157
-		return $property;
158
-	}
159
-
160
-	/**
161
-	 * returns the section ID string, e.g. 'sharing'
162
-	 * @since 9.1
163
-	 */
164
-	public function getSection(): string {
165
-		return 'personal-info';
166
-	}
167
-
168
-	/**
169
-	 * @return int whether the form should be rather on the top or bottom of
170
-	 *             the admin section. The forms are arranged in ascending order of the
171
-	 *             priority values. It is required to return a value between 0 and 100.
172
-	 *
173
-	 * E.g.: 70
174
-	 * @since 9.1
175
-	 */
176
-	public function getPriority(): int {
177
-		return 10;
178
-	}
179
-
180
-	/**
181
-	 * returns a sorted list of the user's group GIDs
182
-	 */
183
-	private function getGroups(IUser $user): array {
184
-		$groups = array_map(
185
-			static function (IGroup $group) {
186
-				return $group->getDisplayName();
187
-			},
188
-			$this->groupManager->getUserGroups($user)
189
-		);
190
-		sort($groups);
191
-
192
-		return $groups;
193
-	}
194
-
195
-	/**
196
-	 * returns the primary email and additional emails in an
197
-	 * associative array
198
-	 */
199
-	private function getEmailMap(IAccount $account): array {
200
-		$systemEmail = [
201
-			'name' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getName(),
202
-			'value' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getValue(),
203
-			'scope' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getScope(),
204
-			'verified' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getVerified(),
205
-		];
206
-
207
-		$additionalEmails = array_map(
208
-			function (IAccountProperty $property) {
209
-				return [
210
-					'name' => $property->getName(),
211
-					'value' => $property->getValue(),
212
-					'scope' => $property->getScope(),
213
-					'verified' => $property->getVerified(),
214
-					'locallyVerified' => $property->getLocallyVerified(),
215
-				];
216
-			},
217
-			$account->getPropertyCollection(IAccountManager::COLLECTION_EMAIL)->getProperties(),
218
-		);
219
-
220
-		$emailMap = [
221
-			'primaryEmail' => $systemEmail,
222
-			'additionalEmails' => $additionalEmails,
223
-			'notificationEmail' => (string)$account->getUser()->getPrimaryEMailAddress(),
224
-		];
225
-
226
-		return $emailMap;
227
-	}
228
-
229
-	/**
230
-	 * returns the user's active language, common languages, and other languages in an
231
-	 * associative array
232
-	 */
233
-	private function getLanguageMap(IUser $user): array {
234
-		$forceLanguage = $this->config->getSystemValue('force_language', false);
235
-		if ($forceLanguage !== false) {
236
-			return [];
237
-		}
238
-
239
-		$uid = $user->getUID();
240
-
241
-		$userConfLang = $this->config->getUserValue($uid, 'core', 'lang', $this->l10nFactory->findLanguage());
242
-		$languages = $this->l10nFactory->getLanguages();
243
-
244
-		// associate the user language with the proper array
245
-		$userLangIndex = array_search($userConfLang, array_column($languages['commonLanguages'], 'code'));
246
-		$userLang = $languages['commonLanguages'][$userLangIndex];
247
-		// search in the other languages
248
-		if ($userLangIndex === false) {
249
-			$userLangIndex = array_search($userConfLang, array_column($languages['otherLanguages'], 'code'));
250
-			$userLang = $languages['otherLanguages'][$userLangIndex];
251
-		}
252
-		// if user language is not available but set somehow: show the actual code as name
253
-		if (!is_array($userLang)) {
254
-			$userLang = [
255
-				'code' => $userConfLang,
256
-				'name' => $userConfLang,
257
-			];
258
-		}
259
-
260
-		return array_merge(
261
-			['activeLanguage' => $userLang],
262
-			$languages
263
-		);
264
-	}
265
-
266
-	private function getLocaleMap(IUser $user): array {
267
-		$forceLanguage = $this->config->getSystemValue('force_locale', false);
268
-		if ($forceLanguage !== false) {
269
-			return [];
270
-		}
271
-
272
-		$uid = $user->getUID();
273
-		$userLang = $this->config->getUserValue($uid, 'core', 'lang', $this->l10nFactory->findLanguage());
274
-		$userLocaleString = $this->config->getUserValue($uid, 'core', 'locale', $this->l10nFactory->findLocale($userLang));
275
-		$localeCodes = $this->l10nFactory->findAvailableLocales();
276
-		$userLocale = array_filter($localeCodes, fn ($value) => $userLocaleString === $value['code']);
277
-
278
-		if (!empty($userLocale)) {
279
-			$userLocale = reset($userLocale);
280
-		}
281
-
282
-		$localesForLanguage = array_values(array_filter($localeCodes, fn ($localeCode) => str_starts_with($localeCode['code'], $userLang)));
283
-		$otherLocales = array_values(array_filter($localeCodes, fn ($localeCode) => !str_starts_with($localeCode['code'], $userLang)));
284
-
285
-		if (!$userLocale) {
286
-			$userLocale = [
287
-				'code' => 'en',
288
-				'name' => 'English'
289
-			];
290
-		}
291
-
292
-		return [
293
-			'activeLocaleLang' => $userLocaleString,
294
-			'activeLocale' => $userLocale,
295
-			'localesForLanguage' => $localesForLanguage,
296
-			'otherLocales' => $otherLocales,
297
-		];
298
-	}
299
-
300
-	/**
301
-	 * returns the message parameters
302
-	 */
303
-	private function getMessageParameters(IAccount $account): array {
304
-		$needVerifyMessage = [IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_WEBSITE, IAccountManager::PROPERTY_TWITTER];
305
-		$messageParameters = [];
306
-		foreach ($needVerifyMessage as $property) {
307
-			switch ($account->getProperty($property)->getVerified()) {
308
-				case IAccountManager::VERIFIED:
309
-					$message = $this->l->t('Verifying');
310
-					break;
311
-				case IAccountManager::VERIFICATION_IN_PROGRESS:
312
-					$message = $this->l->t('Verifying …');
313
-					break;
314
-				default:
315
-					$message = $this->l->t('Verify');
316
-			}
317
-			$messageParameters[$property . 'Message'] = $message;
318
-		}
319
-		return $messageParameters;
320
-	}
36
+    /** @var ProfileManager */
37
+    private $profileManager;
38
+
39
+    public function __construct(
40
+        private IConfig $config,
41
+        private IUserManager $userManager,
42
+        private IGroupManager $groupManager,
43
+        private IAccountManager $accountManager,
44
+        ProfileManager $profileManager,
45
+        private IAppManager $appManager,
46
+        private IFactory $l10nFactory,
47
+        private IL10N $l,
48
+        private IInitialState $initialStateService,
49
+        private IManager $manager,
50
+    ) {
51
+        $this->profileManager = $profileManager;
52
+    }
53
+
54
+    public function getForm(): TemplateResponse {
55
+        $federationEnabled = $this->appManager->isEnabledForUser('federation');
56
+        $federatedFileSharingEnabled = $this->appManager->isEnabledForUser('federatedfilesharing');
57
+        $lookupServerUploadEnabled = false;
58
+        if ($federatedFileSharingEnabled) {
59
+            /** @var FederatedShareProvider $shareProvider */
60
+            $shareProvider = Server::get(FederatedShareProvider::class);
61
+            $lookupServerUploadEnabled = $shareProvider->isLookupServerUploadEnabled();
62
+        }
63
+
64
+        $uid = \OC_User::getUser();
65
+        $user = $this->userManager->get($uid);
66
+        $account = $this->accountManager->getAccount($user);
67
+
68
+        // make sure FS is setup before querying storage related stuff...
69
+        \OC_Util::setupFS($user->getUID());
70
+
71
+        $storageInfo = \OC_Helper::getStorageInfo('/');
72
+        if ($storageInfo['quota'] === FileInfo::SPACE_UNLIMITED) {
73
+            $totalSpace = $this->l->t('Unlimited');
74
+        } else {
75
+            $totalSpace = Util::humanFileSize($storageInfo['total']);
76
+        }
77
+
78
+        $messageParameters = $this->getMessageParameters($account);
79
+
80
+        $parameters = [
81
+            'lookupServerUploadEnabled' => $lookupServerUploadEnabled,
82
+            'isFairUseOfFreePushService' => $this->isFairUseOfFreePushService(),
83
+            'profileEnabledGlobally' => $this->profileManager->isProfileEnabled(),
84
+        ] + $messageParameters;
85
+
86
+        $personalInfoParameters = [
87
+            'userId' => $uid,
88
+            'avatar' => $this->getProperty($account, IAccountManager::PROPERTY_AVATAR),
89
+            'groups' => $this->getGroups($user),
90
+            'quota' => $storageInfo['quota'],
91
+            'totalSpace' => $totalSpace,
92
+            'usage' => Util::humanFileSize($storageInfo['used']),
93
+            'usageRelative' => round($storageInfo['relative']),
94
+            'displayName' => $this->getProperty($account, IAccountManager::PROPERTY_DISPLAYNAME),
95
+            'emailMap' => $this->getEmailMap($account),
96
+            'phone' => $this->getProperty($account, IAccountManager::PROPERTY_PHONE),
97
+            'defaultPhoneRegion' => $this->config->getSystemValueString('default_phone_region'),
98
+            'location' => $this->getProperty($account, IAccountManager::PROPERTY_ADDRESS),
99
+            'website' => $this->getProperty($account, IAccountManager::PROPERTY_WEBSITE),
100
+            'twitter' => $this->getProperty($account, IAccountManager::PROPERTY_TWITTER),
101
+            'bluesky' => $this->getProperty($account, IAccountManager::PROPERTY_BLUESKY),
102
+            'fediverse' => $this->getProperty($account, IAccountManager::PROPERTY_FEDIVERSE),
103
+            'languageMap' => $this->getLanguageMap($user),
104
+            'localeMap' => $this->getLocaleMap($user),
105
+            'profileEnabledGlobally' => $this->profileManager->isProfileEnabled(),
106
+            'profileEnabled' => $this->profileManager->isProfileEnabled($user),
107
+            'organisation' => $this->getProperty($account, IAccountManager::PROPERTY_ORGANISATION),
108
+            'role' => $this->getProperty($account, IAccountManager::PROPERTY_ROLE),
109
+            'headline' => $this->getProperty($account, IAccountManager::PROPERTY_HEADLINE),
110
+            'biography' => $this->getProperty($account, IAccountManager::PROPERTY_BIOGRAPHY),
111
+            'birthdate' => $this->getProperty($account, IAccountManager::PROPERTY_BIRTHDATE),
112
+            'firstDayOfWeek' => $this->config->getUserValue($uid, 'core', AUserDataOCSController::USER_FIELD_FIRST_DAY_OF_WEEK),
113
+            'timezone' => $this->config->getUserValue($uid, 'core', 'timezone', ''),
114
+            'pronouns' => $this->getProperty($account, IAccountManager::PROPERTY_PRONOUNS),
115
+        ];
116
+
117
+        $accountParameters = [
118
+            'avatarChangeSupported' => $user->canChangeAvatar(),
119
+            'displayNameChangeSupported' => $user->canChangeDisplayName(),
120
+            'emailChangeSupported' => $user->canChangeEmail(),
121
+            'federationEnabled' => $federationEnabled,
122
+            'lookupServerUploadEnabled' => $lookupServerUploadEnabled,
123
+        ];
124
+
125
+        $profileParameters = [
126
+            'profileConfig' => $this->profileManager->getProfileConfigWithMetadata($user, $user),
127
+        ];
128
+
129
+        $this->initialStateService->provideInitialState('profileEnabledGlobally', $this->profileManager->isProfileEnabled());
130
+        $this->initialStateService->provideInitialState('personalInfoParameters', $personalInfoParameters);
131
+        $this->initialStateService->provideInitialState('accountParameters', $accountParameters);
132
+        $this->initialStateService->provideInitialState('profileParameters', $profileParameters);
133
+
134
+        return new TemplateResponse('settings', 'settings/personal/personal.info', $parameters, '');
135
+    }
136
+
137
+    /**
138
+     * Check if is fair use of free push service
139
+     * @return boolean
140
+     */
141
+    private function isFairUseOfFreePushService(): bool {
142
+        return $this->manager->isFairUseOfFreePushService();
143
+    }
144
+
145
+    /**
146
+     * returns the property data in an
147
+     * associative array
148
+     */
149
+    private function getProperty(IAccount $account, string $property): array {
150
+        $property = [
151
+            'name' => $account->getProperty($property)->getName(),
152
+            'value' => $account->getProperty($property)->getValue(),
153
+            'scope' => $account->getProperty($property)->getScope(),
154
+            'verified' => $account->getProperty($property)->getVerified(),
155
+        ];
156
+
157
+        return $property;
158
+    }
159
+
160
+    /**
161
+     * returns the section ID string, e.g. 'sharing'
162
+     * @since 9.1
163
+     */
164
+    public function getSection(): string {
165
+        return 'personal-info';
166
+    }
167
+
168
+    /**
169
+     * @return int whether the form should be rather on the top or bottom of
170
+     *             the admin section. The forms are arranged in ascending order of the
171
+     *             priority values. It is required to return a value between 0 and 100.
172
+     *
173
+     * E.g.: 70
174
+     * @since 9.1
175
+     */
176
+    public function getPriority(): int {
177
+        return 10;
178
+    }
179
+
180
+    /**
181
+     * returns a sorted list of the user's group GIDs
182
+     */
183
+    private function getGroups(IUser $user): array {
184
+        $groups = array_map(
185
+            static function (IGroup $group) {
186
+                return $group->getDisplayName();
187
+            },
188
+            $this->groupManager->getUserGroups($user)
189
+        );
190
+        sort($groups);
191
+
192
+        return $groups;
193
+    }
194
+
195
+    /**
196
+     * returns the primary email and additional emails in an
197
+     * associative array
198
+     */
199
+    private function getEmailMap(IAccount $account): array {
200
+        $systemEmail = [
201
+            'name' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getName(),
202
+            'value' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getValue(),
203
+            'scope' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getScope(),
204
+            'verified' => $account->getProperty(IAccountManager::PROPERTY_EMAIL)->getVerified(),
205
+        ];
206
+
207
+        $additionalEmails = array_map(
208
+            function (IAccountProperty $property) {
209
+                return [
210
+                    'name' => $property->getName(),
211
+                    'value' => $property->getValue(),
212
+                    'scope' => $property->getScope(),
213
+                    'verified' => $property->getVerified(),
214
+                    'locallyVerified' => $property->getLocallyVerified(),
215
+                ];
216
+            },
217
+            $account->getPropertyCollection(IAccountManager::COLLECTION_EMAIL)->getProperties(),
218
+        );
219
+
220
+        $emailMap = [
221
+            'primaryEmail' => $systemEmail,
222
+            'additionalEmails' => $additionalEmails,
223
+            'notificationEmail' => (string)$account->getUser()->getPrimaryEMailAddress(),
224
+        ];
225
+
226
+        return $emailMap;
227
+    }
228
+
229
+    /**
230
+     * returns the user's active language, common languages, and other languages in an
231
+     * associative array
232
+     */
233
+    private function getLanguageMap(IUser $user): array {
234
+        $forceLanguage = $this->config->getSystemValue('force_language', false);
235
+        if ($forceLanguage !== false) {
236
+            return [];
237
+        }
238
+
239
+        $uid = $user->getUID();
240
+
241
+        $userConfLang = $this->config->getUserValue($uid, 'core', 'lang', $this->l10nFactory->findLanguage());
242
+        $languages = $this->l10nFactory->getLanguages();
243
+
244
+        // associate the user language with the proper array
245
+        $userLangIndex = array_search($userConfLang, array_column($languages['commonLanguages'], 'code'));
246
+        $userLang = $languages['commonLanguages'][$userLangIndex];
247
+        // search in the other languages
248
+        if ($userLangIndex === false) {
249
+            $userLangIndex = array_search($userConfLang, array_column($languages['otherLanguages'], 'code'));
250
+            $userLang = $languages['otherLanguages'][$userLangIndex];
251
+        }
252
+        // if user language is not available but set somehow: show the actual code as name
253
+        if (!is_array($userLang)) {
254
+            $userLang = [
255
+                'code' => $userConfLang,
256
+                'name' => $userConfLang,
257
+            ];
258
+        }
259
+
260
+        return array_merge(
261
+            ['activeLanguage' => $userLang],
262
+            $languages
263
+        );
264
+    }
265
+
266
+    private function getLocaleMap(IUser $user): array {
267
+        $forceLanguage = $this->config->getSystemValue('force_locale', false);
268
+        if ($forceLanguage !== false) {
269
+            return [];
270
+        }
271
+
272
+        $uid = $user->getUID();
273
+        $userLang = $this->config->getUserValue($uid, 'core', 'lang', $this->l10nFactory->findLanguage());
274
+        $userLocaleString = $this->config->getUserValue($uid, 'core', 'locale', $this->l10nFactory->findLocale($userLang));
275
+        $localeCodes = $this->l10nFactory->findAvailableLocales();
276
+        $userLocale = array_filter($localeCodes, fn ($value) => $userLocaleString === $value['code']);
277
+
278
+        if (!empty($userLocale)) {
279
+            $userLocale = reset($userLocale);
280
+        }
281
+
282
+        $localesForLanguage = array_values(array_filter($localeCodes, fn ($localeCode) => str_starts_with($localeCode['code'], $userLang)));
283
+        $otherLocales = array_values(array_filter($localeCodes, fn ($localeCode) => !str_starts_with($localeCode['code'], $userLang)));
284
+
285
+        if (!$userLocale) {
286
+            $userLocale = [
287
+                'code' => 'en',
288
+                'name' => 'English'
289
+            ];
290
+        }
291
+
292
+        return [
293
+            'activeLocaleLang' => $userLocaleString,
294
+            'activeLocale' => $userLocale,
295
+            'localesForLanguage' => $localesForLanguage,
296
+            'otherLocales' => $otherLocales,
297
+        ];
298
+    }
299
+
300
+    /**
301
+     * returns the message parameters
302
+     */
303
+    private function getMessageParameters(IAccount $account): array {
304
+        $needVerifyMessage = [IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_WEBSITE, IAccountManager::PROPERTY_TWITTER];
305
+        $messageParameters = [];
306
+        foreach ($needVerifyMessage as $property) {
307
+            switch ($account->getProperty($property)->getVerified()) {
308
+                case IAccountManager::VERIFIED:
309
+                    $message = $this->l->t('Verifying');
310
+                    break;
311
+                case IAccountManager::VERIFICATION_IN_PROGRESS:
312
+                    $message = $this->l->t('Verifying …');
313
+                    break;
314
+                default:
315
+                    $message = $this->l->t('Verify');
316
+            }
317
+            $messageParameters[$property . 'Message'] = $message;
318
+        }
319
+        return $messageParameters;
320
+    }
321 321
 }
Please login to merge, or discard this patch.
lib/private/User/Listeners/BeforeUserDeletedListener.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@
 block discarded – undo
57 57
 			// no avatar to remove
58 58
 		} catch (\Exception $e) {
59 59
 			// Ignore exceptions
60
-			$this->logger->info('Could not cleanup avatar of ' . $user->getUID(), [
60
+			$this->logger->info('Could not cleanup avatar of '.$user->getUID(), [
61 61
 				'exception' => $e,
62 62
 			]);
63 63
 		}
Please login to merge, or discard this patch.
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -20,36 +20,36 @@
 block discarded – undo
20 20
  * @template-implements IEventListener<BeforeUserDeletedEvent>
21 21
  */
22 22
 class BeforeUserDeletedListener implements IEventListener {
23
-	private IAvatarManager $avatarManager;
24
-	private ICredentialsManager $credentialsManager;
25
-	private LoggerInterface $logger;
26
-
27
-	public function __construct(LoggerInterface $logger, IAvatarManager $avatarManager, ICredentialsManager $credentialsManager) {
28
-		$this->avatarManager = $avatarManager;
29
-		$this->credentialsManager = $credentialsManager;
30
-		$this->logger = $logger;
31
-	}
32
-
33
-	public function handle(Event $event): void {
34
-		if (!($event instanceof BeforeUserDeletedEvent)) {
35
-			return;
36
-		}
37
-
38
-		$user = $event->getUser();
39
-
40
-		// Delete avatar on user deletion
41
-		try {
42
-			$avatar = $this->avatarManager->getAvatar($user->getUID());
43
-			$avatar->remove(true);
44
-		} catch (NotFoundException $e) {
45
-			// no avatar to remove
46
-		} catch (\Exception $e) {
47
-			// Ignore exceptions
48
-			$this->logger->info('Could not cleanup avatar of ' . $user->getUID(), [
49
-				'exception' => $e,
50
-			]);
51
-		}
52
-		// Delete storages credentials on user deletion
53
-		$this->credentialsManager->erase($user->getUID());
54
-	}
23
+    private IAvatarManager $avatarManager;
24
+    private ICredentialsManager $credentialsManager;
25
+    private LoggerInterface $logger;
26
+
27
+    public function __construct(LoggerInterface $logger, IAvatarManager $avatarManager, ICredentialsManager $credentialsManager) {
28
+        $this->avatarManager = $avatarManager;
29
+        $this->credentialsManager = $credentialsManager;
30
+        $this->logger = $logger;
31
+    }
32
+
33
+    public function handle(Event $event): void {
34
+        if (!($event instanceof BeforeUserDeletedEvent)) {
35
+            return;
36
+        }
37
+
38
+        $user = $event->getUser();
39
+
40
+        // Delete avatar on user deletion
41
+        try {
42
+            $avatar = $this->avatarManager->getAvatar($user->getUID());
43
+            $avatar->remove(true);
44
+        } catch (NotFoundException $e) {
45
+            // no avatar to remove
46
+        } catch (\Exception $e) {
47
+            // Ignore exceptions
48
+            $this->logger->info('Could not cleanup avatar of ' . $user->getUID(), [
49
+                'exception' => $e,
50
+            ]);
51
+        }
52
+        // Delete storages credentials on user deletion
53
+        $this->credentialsManager->erase($user->getUID());
54
+    }
55 55
 }
Please login to merge, or discard this patch.
lib/private/TagManager.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -123,7 +123,7 @@
 block discarded – undo
123 123
 			return;
124 124
 		}
125 125
 
126
-		$tagsIds = array_map(fn (array $row) => (int)$row['id'], $result->fetchAll());
126
+		$tagsIds = array_map(fn (array $row) => (int) $row['id'], $result->fetchAll());
127 127
 		$result->closeCursor();
128 128
 
129 129
 		if (count($tagsIds) === 0) {
Please login to merge, or discard this patch.
Indentation   +98 added lines, -98 removed lines patch added patch discarded remove patch
@@ -25,113 +25,113 @@
 block discarded – undo
25 25
  */
26 26
 class TagManager implements ITagManager, IEventListener {
27 27
 
28
-	public function __construct(
29
-		private TagMapper $mapper,
30
-		private IUserSession $userSession,
31
-		private IDBConnection $connection,
32
-		private LoggerInterface $logger,
33
-		private IEventDispatcher $dispatcher,
34
-	) {
35
-	}
28
+    public function __construct(
29
+        private TagMapper $mapper,
30
+        private IUserSession $userSession,
31
+        private IDBConnection $connection,
32
+        private LoggerInterface $logger,
33
+        private IEventDispatcher $dispatcher,
34
+    ) {
35
+    }
36 36
 
37
-	/**
38
-	 * Create a new \OCP\ITags instance and load tags from db.
39
-	 *
40
-	 * @see \OCP\ITags
41
-	 * @param string $type The type identifier e.g. 'contact' or 'event'.
42
-	 * @param array $defaultTags An array of default tags to be used if none are stored.
43
-	 * @param boolean $includeShared Whether to include tags for items shared with this user by others.
44
-	 * @param string $userId user for which to retrieve the tags, defaults to the currently
45
-	 *                       logged in user
46
-	 * @return \OCP\ITags
47
-	 *
48
-	 * since 20.0.0 $includeShared isn't used anymore
49
-	 */
50
-	public function load($type, $defaultTags = [], $includeShared = false, $userId = null) {
51
-		if (is_null($userId)) {
52
-			$user = $this->userSession->getUser();
53
-			if ($user === null) {
54
-				// nothing we can do without a user
55
-				return null;
56
-			}
57
-			$userId = $this->userSession->getUser()->getUId();
58
-		}
59
-		return new Tags($this->mapper, $userId, $type, $this->logger, $this->connection, $this->dispatcher, $this->userSession, $defaultTags);
60
-	}
37
+    /**
38
+     * Create a new \OCP\ITags instance and load tags from db.
39
+     *
40
+     * @see \OCP\ITags
41
+     * @param string $type The type identifier e.g. 'contact' or 'event'.
42
+     * @param array $defaultTags An array of default tags to be used if none are stored.
43
+     * @param boolean $includeShared Whether to include tags for items shared with this user by others.
44
+     * @param string $userId user for which to retrieve the tags, defaults to the currently
45
+     *                       logged in user
46
+     * @return \OCP\ITags
47
+     *
48
+     * since 20.0.0 $includeShared isn't used anymore
49
+     */
50
+    public function load($type, $defaultTags = [], $includeShared = false, $userId = null) {
51
+        if (is_null($userId)) {
52
+            $user = $this->userSession->getUser();
53
+            if ($user === null) {
54
+                // nothing we can do without a user
55
+                return null;
56
+            }
57
+            $userId = $this->userSession->getUser()->getUId();
58
+        }
59
+        return new Tags($this->mapper, $userId, $type, $this->logger, $this->connection, $this->dispatcher, $this->userSession, $defaultTags);
60
+    }
61 61
 
62
-	/**
63
-	 * Get all users who favorited an object
64
-	 *
65
-	 * @param string $objectType
66
-	 * @param int $objectId
67
-	 * @return array
68
-	 */
69
-	public function getUsersFavoritingObject(string $objectType, int $objectId): array {
70
-		$query = $this->connection->getQueryBuilder();
71
-		$query->select('uid')
72
-			->from('vcategory_to_object', 'o')
73
-			->innerJoin('o', 'vcategory', 'c', $query->expr()->eq('o.categoryid', 'c.id'))
74
-			->where($query->expr()->eq('objid', $query->createNamedParameter($objectId, IQueryBuilder::PARAM_INT)))
75
-			->andWhere($query->expr()->eq('c.type', $query->createNamedParameter($objectType)))
76
-			->andWhere($query->expr()->eq('c.category', $query->createNamedParameter(ITags::TAG_FAVORITE)));
62
+    /**
63
+     * Get all users who favorited an object
64
+     *
65
+     * @param string $objectType
66
+     * @param int $objectId
67
+     * @return array
68
+     */
69
+    public function getUsersFavoritingObject(string $objectType, int $objectId): array {
70
+        $query = $this->connection->getQueryBuilder();
71
+        $query->select('uid')
72
+            ->from('vcategory_to_object', 'o')
73
+            ->innerJoin('o', 'vcategory', 'c', $query->expr()->eq('o.categoryid', 'c.id'))
74
+            ->where($query->expr()->eq('objid', $query->createNamedParameter($objectId, IQueryBuilder::PARAM_INT)))
75
+            ->andWhere($query->expr()->eq('c.type', $query->createNamedParameter($objectType)))
76
+            ->andWhere($query->expr()->eq('c.category', $query->createNamedParameter(ITags::TAG_FAVORITE)));
77 77
 
78
-		$result = $query->execute();
79
-		$users = $result->fetchAll(\PDO::FETCH_COLUMN);
80
-		$result->closeCursor();
78
+        $result = $query->execute();
79
+        $users = $result->fetchAll(\PDO::FETCH_COLUMN);
80
+        $result->closeCursor();
81 81
 
82
-		return $users;
83
-	}
82
+        return $users;
83
+    }
84 84
 
85
-	public function handle(Event $event): void {
86
-		if (!($event instanceof UserDeletedEvent)) {
87
-			return;
88
-		}
85
+    public function handle(Event $event): void {
86
+        if (!($event instanceof UserDeletedEvent)) {
87
+            return;
88
+        }
89 89
 
90
-		// Find all objectid/tagId pairs.
91
-		$user = $event->getUser();
92
-		$qb = $this->connection->getQueryBuilder();
93
-		$qb->select('id')
94
-			->from('vcategory')
95
-			->where($qb->expr()->eq('uid', $qb->createNamedParameter($user->getUID())));
96
-		try {
97
-			$result = $qb->executeQuery();
98
-		} catch (DBException $e) {
99
-			$this->logger->error($e->getMessage(), [
100
-				'app' => 'core',
101
-				'exception' => $e,
102
-			]);
103
-			return;
104
-		}
90
+        // Find all objectid/tagId pairs.
91
+        $user = $event->getUser();
92
+        $qb = $this->connection->getQueryBuilder();
93
+        $qb->select('id')
94
+            ->from('vcategory')
95
+            ->where($qb->expr()->eq('uid', $qb->createNamedParameter($user->getUID())));
96
+        try {
97
+            $result = $qb->executeQuery();
98
+        } catch (DBException $e) {
99
+            $this->logger->error($e->getMessage(), [
100
+                'app' => 'core',
101
+                'exception' => $e,
102
+            ]);
103
+            return;
104
+        }
105 105
 
106
-		$tagsIds = array_map(fn (array $row) => (int)$row['id'], $result->fetchAll());
107
-		$result->closeCursor();
106
+        $tagsIds = array_map(fn (array $row) => (int)$row['id'], $result->fetchAll());
107
+        $result->closeCursor();
108 108
 
109
-		if (count($tagsIds) === 0) {
110
-			return;
111
-		}
109
+        if (count($tagsIds) === 0) {
110
+            return;
111
+        }
112 112
 
113
-		// Clean vcategory_to_object table
114
-		$qb = $this->connection->getQueryBuilder();
115
-		$qb = $qb->delete('vcategory_to_object')
116
-			->where($qb->expr()->in('categoryid', $qb->createParameter('chunk')));
113
+        // Clean vcategory_to_object table
114
+        $qb = $this->connection->getQueryBuilder();
115
+        $qb = $qb->delete('vcategory_to_object')
116
+            ->where($qb->expr()->in('categoryid', $qb->createParameter('chunk')));
117 117
 
118
-		// Clean vcategory
119
-		$qb1 = $this->connection->getQueryBuilder();
120
-		$qb1 = $qb1->delete('vcategory')
121
-			->where($qb1->expr()->in('uid', $qb1->createParameter('chunk')));
118
+        // Clean vcategory
119
+        $qb1 = $this->connection->getQueryBuilder();
120
+        $qb1 = $qb1->delete('vcategory')
121
+            ->where($qb1->expr()->in('uid', $qb1->createParameter('chunk')));
122 122
 
123
-		foreach (array_chunk($tagsIds, 1000) as $tagChunk) {
124
-			$qb->setParameter('chunk', $tagChunk, IQueryBuilder::PARAM_INT_ARRAY);
125
-			$qb1->setParameter('chunk', $tagChunk, IQueryBuilder::PARAM_INT_ARRAY);
126
-			try {
127
-				$qb->executeStatement();
128
-				$qb1->executeStatement();
129
-			} catch (DBException $e) {
130
-				$this->logger->error($e->getMessage(), [
131
-					'app' => 'core',
132
-					'exception' => $e,
133
-				]);
134
-			}
135
-		}
136
-	}
123
+        foreach (array_chunk($tagsIds, 1000) as $tagChunk) {
124
+            $qb->setParameter('chunk', $tagChunk, IQueryBuilder::PARAM_INT_ARRAY);
125
+            $qb1->setParameter('chunk', $tagChunk, IQueryBuilder::PARAM_INT_ARRAY);
126
+            try {
127
+                $qb->executeStatement();
128
+                $qb1->executeStatement();
129
+            } catch (DBException $e) {
130
+                $this->logger->error($e->getMessage(), [
131
+                    'app' => 'core',
132
+                    'exception' => $e,
133
+                ]);
134
+            }
135
+        }
136
+    }
137 137
 }
Please login to merge, or discard this patch.