diff --git a/app/Classes/RcnApi/Resources/ApplicationResource.php b/app/Classes/RcnApi/Resources/ApplicationResource.php index 08bc3c2..d0babd5 100644 --- a/app/Classes/RcnApi/Resources/ApplicationResource.php +++ b/app/Classes/RcnApi/Resources/ApplicationResource.php @@ -93,4 +93,17 @@ public function deleteApplication(int $id) $this->http->delete('apps/' . $id); }); } + + public function updateRules(int $tenantUserId, array $rules) + { + return $this->handleApiCall(function () use ($tenantUserId, $rules) { + $response = $this->http->post('applications/rules', [ + 'json' => [ + 'tenant_user_id' => (string) $tenantUserId, + 'rules' => $rules, + ], + ]); + return json_decode($response->getBody()->getContents(), true); + }); + } } diff --git a/app/Http/Controllers/Auth/UserController.php b/app/Http/Controllers/Auth/UserController.php index 81b8641..00713a9 100644 --- a/app/Http/Controllers/Auth/UserController.php +++ b/app/Http/Controllers/Auth/UserController.php @@ -366,6 +366,9 @@ public function update(Request $request, int $userId) 'organisations' => 'array', 'organisations.*' => 'string|distinct|min:3|max:3', 'confirmed_role' => 'nullable|boolean', + + 'can_access_legacy_whatnow' => 'nullable|boolean', + 'can_access_preparedness_v2' => 'nullable|boolean', ]); @@ -402,11 +405,33 @@ public function update(Request $request, int $userId) 'terms_version' => $termsVersion ?? null, ]); + // Track if access flags are being changed + $rulesChanged = $request->has('can_access_legacy_whatnow') || $request->has('can_access_preparedness_v2'); + + // Apply access flags directly to user model before saving + if ($request->has('can_access_legacy_whatnow')) { + $user->can_access_legacy_whatnow = (bool) $request->get('can_access_legacy_whatnow'); + } + if ($request->has('can_access_preparedness_v2')) { + $user->can_access_preparedness_v2 = (bool) $request->get('can_access_preparedness_v2'); + } + $user = $this->users->updateUser($user, $input); $user->load('organisations'); event(new UserUpdated($user)); + // Call external API if access flags changed + if ($rulesChanged) { + try { + $this->rcnApiClient->application()->updateRules($user->id, [ + 'can_access_legacy_whatnow' => (bool) $user->can_access_legacy_whatnow, + 'can_access_preparedness_v2' => (bool) $user->can_access_preparedness_v2, + ]); + } catch (\Exception $e) { + Log::error('Failed to update rules for user ' . $user->id . ': ' . $e->getMessage()); + } + } return UserResource::make($user); } diff --git a/app/Http/Resources/UserResource.php b/app/Http/Resources/UserResource.php index 3c8d09e..37477e8 100644 --- a/app/Http/Resources/UserResource.php +++ b/app/Http/Resources/UserResource.php @@ -7,7 +7,7 @@ class UserResource extends Resource { - + public function toArray($request) { $user = [ @@ -20,6 +20,8 @@ public function toArray($request) 'created_at' => $this->created_at->format('c'), 'user_profile' => UserProfileResource::make($this->userProfile), 'confirmed_role' => $this->confirmed_role, + 'can_access_legacy_whatnow' => (bool) $this->can_access_legacy_whatnow, + 'can_access_preparedness_v2' => (bool) $this->can_access_preparedness_v2, ]; $roles = $this->whenLoaded('roles'); diff --git a/app/Models/Access/User/User.php b/app/Models/Access/User/User.php index c100133..1cad0ca 100644 --- a/app/Models/Access/User/User.php +++ b/app/Models/Access/User/User.php @@ -17,61 +17,64 @@ class User extends Authenticatable implements JWTSubject SoftDeletes, UserAccess, UserRelationship; - - + + protected $fillable = [ - 'email', 'password', 'confirmation_code', 'confirmed_role' + 'email', 'password', 'confirmation_code', 'confirmed_role', + 'can_access_legacy_whatnow', 'can_access_preparedness_v2', ]; - + protected $casts = [ 'activated' => 'boolean', 'confirmed' => 'boolean', 'confirmed_role' => 'boolean', + 'can_access_legacy_whatnow' => 'boolean', + 'can_access_preparedness_v2' => 'boolean', ]; - + protected $attributes = [ 'activated' => true ]; - + protected $dates = ['deleted_at', 'password_updated_at', 'created_at', 'updated_at', 'last_logged_in_at']; - + protected $hidden = [ 'password', 'remember_token', ]; - + protected $appends = [ 'photo_url', ]; - + protected $with = [ 'userProfile' ]; - + public function getPhotoUrlAttribute() { return 'https://www.gravatar.com/avatar/'.md5(strtolower($this->email)).'.jpg?s=200&d=mm'; } - + public function oauthProviders() { return $this->hasMany(OAuthProvider::class); } - + public function getJWTIdentifier() { return $this->getKey(); } - + public function getJWTCustomClaims() { return [ @@ -79,7 +82,7 @@ public function getJWTCustomClaims() ]; } - + public function hasSetOwnPassword() { return !is_null($this->password_updated_at); @@ -97,13 +100,13 @@ public function confirm() $this->save(); } - + public function isConfirmed() { return $this->confirmed === true; } - + public function isActive() { return $this->activated === true; diff --git a/config/cors.php b/config/cors.php index f757075..fa7bb52 100644 --- a/config/cors.php +++ b/config/cors.php @@ -1,13 +1,9 @@ Spatie\Cors\CorsProfile\DefaultProfile::class, - 'default_profile' => [ - 'allow_origins' => [ '*', ], @@ -26,9 +22,10 @@ 'X-Auth-Token', 'Origin', 'Authorization', + 'x-api-key', ], - + 'max_age' => 60 * 60 * 24, ], ]; diff --git a/database/migrations/2026_03_04_000000_add_access_flags_to_users_table.php b/database/migrations/2026_03_04_000000_add_access_flags_to_users_table.php new file mode 100644 index 0000000..ab336be --- /dev/null +++ b/database/migrations/2026_03_04_000000_add_access_flags_to_users_table.php @@ -0,0 +1,34 @@ +boolean('can_access_legacy_whatnow')->default(false)->after('confirmed_role'); + $table->boolean('can_access_preparedness_v2')->default(false)->after('can_access_legacy_whatnow'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn(['can_access_legacy_whatnow', 'can_access_preparedness_v2']); + }); + } +} + diff --git a/resources/assets/js/pages/users/edit.vue b/resources/assets/js/pages/users/edit.vue index caf0ccf..aa2ea7b 100644 --- a/resources/assets/js/pages/users/edit.vue +++ b/resources/assets/js/pages/users/edit.vue @@ -227,6 +227,42 @@ +
+ + +

+ {{ $t('users.edit.access_permissions') }} +

+ + + +
+ + {{ $t('users.edit.can_access_legacy_whatnow') }} + +
+
+ + {{ $t('users.edit.can_access_preparedness_v2') }} + +
+
+
+
+
+

@@ -390,7 +426,9 @@ export default { activated: null, organisations: [], permissions: [], - api_used_in: '' + api_used_in: '', + can_access_legacy_whatnow: false, + can_access_preparedness_v2: false }, societies: { selectedSoc: null, @@ -484,7 +522,9 @@ export default { const changes = { first_name: this.user.first_name, last_name: this.user.last_name, - organisations: this.user.organisations + organisations: this.user.organisations, + can_access_legacy_whatnow: this.user.can_access_legacy_whatnow, + can_access_preparedness_v2: this.user.can_access_preparedness_v2 } if (this.user.api_used_in && this.user.api_used_in.length > 0) { @@ -544,7 +584,9 @@ export default { id: user.id, organisations: user.organisations, permissions: user.role.permissions, - api_used_in: user.user_profile.api_used_in + api_used_in: user.user_profile.api_used_in, + can_access_legacy_whatnow: !!user.can_access_legacy_whatnow, + can_access_preparedness_v2: !!user.can_access_preparedness_v2 } }, async resendActivation () { @@ -685,4 +727,9 @@ export default { border-radius: 10px; padding: 0.5rem; } + +.switch-active >>> .custom-control-input:checked ~ .custom-control-label::before { + background-color: #f6333f; + border-color: #f6333f; +} diff --git a/resources/lang/am.json b/resources/lang/am.json index 06218f2..179dbf2 100644 --- a/resources/lang/am.json +++ b/resources/lang/am.json @@ -379,7 +379,10 @@ "less": "ያነሰ አሳይ", "user_can_do": "ተጠቃሚው ምን የማድረግ ፈቃድ እንዳለው ይመልከቱ:", "user_no_permission": "ተጠቃሚው ምንም ፈቃዶች አላገኘም", - "soc_already_added": "ይህ ተጠቃሚ አስቀድሞ ለዚህ ማህበር ተመድቧል" + "soc_already_added": "ይህ ተጠቃሚ አስቀድሞ ለዚህ ማህበር ተመድቧል", + "access_permissions": "የመዳረሻ ፈቃዶች", + "can_access_legacy_whatnow": "ቀደምት WhatNow መዳረስ ይችላል", + "can_access_preparedness_v2": "Preparedness v2 መዳረስ ይችላል" } }, "new_welcome": { diff --git a/resources/lang/ar.json b/resources/lang/ar.json index 0b8ffa6..499cabd 100644 --- a/resources/lang/ar.json +++ b/resources/lang/ar.json @@ -388,7 +388,10 @@ "less": "عرض أقل", "user_can_do": "عرض الصلاحيات الممنوحة للمستخدم:", "user_no_permission": "المستخدم ليس لديه أي صلاحيات", - "soc_already_added": "تم تعيين هذه الجمعية لهذا المستخدم بالفعل" + "soc_already_added": "تم تعيين هذه الجمعية لهذا المستخدم بالفعل", + "access_permissions": "أذونات الوصول", + "can_access_legacy_whatnow": "يمكن الوصول إلى WhatNow القديم", + "can_access_preparedness_v2": "يمكن الوصول إلى Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/bn.json b/resources/lang/bn.json index a93b98a..4efe0b2 100644 --- a/resources/lang/bn.json +++ b/resources/lang/bn.json @@ -378,7 +378,10 @@ "less": "কম প্রদর্শন করুন", "user_can_do": "ব্যবহারকারীর যা করার অনুমতি আছে তা দেখুন:", "user_no_permission": "ব্যবহারকারীর কোন অনুমতি নেই", - "soc_already_added": "ব্যবহারকারী ইতিমধ্যে এই সমাজে নিযুক্ত হয়েছেন" + "soc_already_added": "ব্যবহারকারী ইতিমধ্যে এই সমাজে নিযুক্ত হয়েছেন", + "access_permissions": "প্রবেশাধিকার অনুমতি", + "can_access_legacy_whatnow": "পুরনো WhatNow অ্যাক্সেস করতে পারে", + "can_access_preparedness_v2": "Preparedness v2 অ্যাক্সেস করতে পারে" } }, "new_welcome": { @@ -503,7 +506,7 @@ "content_piece": "বিষয়বস্তুর অংশ", "enter_other_hazard_type": "আপদের ধরণের নাম লিখুন", "other_hazard_type_label": "অন্যান্য আপদের ধরন", - "stepped_content": "বিষয়বস্তুর অংশের পদবীন্যাস", + "stepped_content": "বিষয়বস্তু অংশের পদবীন্যাস", "content_title_description": "এই নিরাপত্তা বার্তাগুলির জন্য শিরোনাম", "content_description_description": "এই নিরাপত্তা বার্তাগুলির বিবরণ", "content_label": "অনুগ্রহ করে আপদ সম্পর্কে কিছু তথ্য লিখুন", @@ -547,12 +550,7 @@ "disaster_risk_reduction": "দুর্যোগ ঝুঁকি হ্রাস", "disaster_risk_reduction_description": "পিএপিই থেকে মূল নিরাপত্তা বার্তা", "recovery": "পুনরুদ্ধার", - "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা", - "hazard_type": "বিপদ প্রকার", - "content_edit_title": "বিষয়বস্তু সম্পাদনা", - "content_add_hazard_title": "বিপত্তি যোগ করুন", - "key_message_label": "মূল বার্তার শিরোনাম", - "supporting_message_label": "সহায়ক বার্তা" + "recovery_description": "পুনরুদ্ধার কার্যক্রমের জন্য মূল নিরাপত্তা" }, "message_editor": { "title": "অ্যাট্রিবিউশন সম্পাদক", @@ -665,7 +663,7 @@ "edit": "অ্যাপ সম্পাদনা করুন", "building": "অ্যাপ নির্মাণ করুন", "building_key": "এপিআই কী তৈরি করা", - "no_apps": "আপনার কাছে কোনও অ্যাপ নেই, শুরু করতে একটি তৈরি করে নিন।", + "no_apps": "আপনার কাছে কোন অ্যাপ নেই, শুরু করতে একটি তৈরি করে নিন।", "api_keys": "এপিআই কীসমূহ" }, "home": { @@ -853,7 +851,7 @@ "body": "ডিসট্রিক্ট অফ কলম্বিয়ার আইন গুলির দ্বারা কোনও নীতি কার্যকর না করে এই চুক্তির অধীনে থাকা সমস্ত অধিকার এবং বাধ্যবাধকতা পরিচালনা করবে।", "heading": "প্রযোজ্য আইন:" }, - "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কযুক্ত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং\/অথবা সম্পর্কযুক্ত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং\/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", + "body": "রেড ক্রস প্রদত্ত রেজিষ্ট্রেশন কী-এর গোপনীয়তা এবং সুরক্ষা বজায় রাখার জন্য আপনি দায় বদ্ধ থাকবেন। ডেটা ফিড গুলি গ্রহণ করা চালিয়ে যাওয়ার জন্য মাঝে মাঝে আপডেট হিসাবে API-এর সাথে সামঞ্জস্য বজায় রাখার জন্য আপনি দায়বদ্ধ থাকবেন। রেড ক্রস তার নিজস্ব বিবেচনার ভিত্তিতে এপিআই এবং ডেটা ফিড গুলির আপডেট সংস্করণ প্রকাশ করতে পারে। নতুন সংস্করণগুলো পূর্ববর্তী বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে এবং আপনি সর্বদা ডেটা ফিড গুলির সর্বশেষ আপডেট হওয়া সংস্করণটি ব্যবহার করতে সম্মত থাকবেন।\n\nআপনাকে সম্মত হতে হবে যে এপিআই বা রেড ক্রসের কোনও সফটওয়্যারের কোনও অংশ সংশোধন, বিতরণ, ডি কম্পাইল, বিচ্ছিন্ন করা, বা রিভার্স ইনজিনিয়ারিং করা যাবে না।\n\nআপনি API বা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা যুক্তিসঙ্গত অনুরোধের পরিমাণকে ছাড়িয়ে যায় বা অতিরিক্ত বা আপত্তিজনক ব্যবহার করে, যা রেড ক্রসের নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nআপনি এপিআই অথবা ডেটা ফিড গুলি এমনভাবে ব্যবহার করতে পারবেন না যা বেআইনী, বিভ্রান্তিকর, অবহেলাপূর্ণ, বিদ্বেষপূর্ণ, যা ক্ষতির কারণ হতে পারে অথবা রেড ক্রস, এর পরিষেবা সরবরাহকারী, এর কনটেন্ট সরবরাহকারী, বা অন্য কোনও ব্যক্তিকে ক্ষতি করে, যা রেড ক্রস দ্বারা এর নিজস্ব বিবেচনার ভিত্তিতে নির্ধারিত।\n\nরেড ক্রস আপনার এপিআই এবং ডেটা ফিড গুলির ব্যবহার পর্যবেক্ষণ করতে পারে। আপনি এই ধরনের পর্যবেক্ষণে হস্তক্ষেপ করার জন্য কোনও প্রযুক্তিগত পদ্ধতি ব্যবহার নাও করতে পারেন, এবং রেড ক্রস এই জাতীয় কোনও হস্তক্ষেপ কাটিয়ে উঠতে প্রযুক্তিগত পদ্ধতি ব্যবহার করতে পারে।\n\nপ্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তা গুলির ব্যবহার কেবলমাত্র বর্তমান হিসাবে উপস্থাপিত হবে বা তৎক্ষনাৎ বর্তমান জরুরী সেটিং-এর সাথে সম্পর্কিত সম্পর্কিত ইভেন্ট অ্যালার্টের আপডেট করা হবে, এবং আপনি রেড ক্রস দ্বারা ডেটা ফিড এবং\/অথবা সম্পর্কিত ইভেন্ট সতর্কতার যে কোনও আপডেট হওয়ার পরে পৃথকভাবে প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার করা বার্তাগুলি আপডেট করবেন।\n\nনিজস্ব প্রস্তুতি, প্রতিক্রিয়া, এবং পুনরুদ্ধার বার্তাসমূহ যা আপনি ব‍্যবহার করবেন কেবলমাত্র সংশ্লিষ্ট ভৌগোলিক অঞ্চলের জন‍্য প্রযোজ‍্য হবে। যদি কোনও প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার বার্তা একটি উৎসের সঙ্গে একটি রেফারেন্স যেমন আমেরিকান রেড ক্রস বা অন্য রেড ক্রস বা রেড ক্রিসেন্ট ন্যাশনাল সোসাইটি বা সংগঠন (প্রতিটি ”সোর্স রেফারেন্স”) অন্তর্ভুক্ত করে তবে আপনি ডেটা ফিড গুলোতে প্রদত্ত ফর্মে প্রতিটি প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর সাথে সম্পর্কিত উৎসের রেফারেন্স অন্তর্ভুক্ত করবেন। আপনি আর কোনও উৎস রেফারেন্স ব্যবহার করবেন না।\n\nআপনি অন্য কোন ভাষায় ডেটা ফিড, ইভেন্ট অ্যালার্ট, এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর অনুবাদ নাও করতে পারেন, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোর কোন ব্যবহার, সম্পাদনা, বা অর্থ পরিবর্তন নাও করতে পারেন।\n\nআপনাকে অবশ্যই নিশ্চিত করতে হবে যে ডেটা ফিড গুলো কেবলমাত্র আপনার দখলে এবং\/অথবা নিয়ন্ত্রণে থাকবে।\n\nআপনি প্রান্তিক ব্যবহারকারীদের কাছে বিতরণ করা ইভেন্ট অ্যালার্ট এবং প্রস্তুতি, প্রতিক্রিয়া এবং পুনরুদ্ধার এর বার্তাগুলোতে কোন বিজ্ঞাপন বা স্পনসরশিপ অন্তর্ভুক্ত করার অনুমতি নাও দিতে পারেন।\n\nআপনি পুরোপুরি বা আংশিকভাবে ডাটা ফিডের কোন আর্কাইভ তৈরি নাও করতে পারেন।", "contact": "অনুগ্রহ করে এপিআই সম্পর্কিত যে কোন প্রশ্ন করতে রেড ক্রসের সাথে {0} তে যোগাযোগ করুন।", "disclaimer": "এপিআই এবং ডেটা ফিড গুলি শুধুমাত্র তথ্যমূলক এবং শিক্ষাগত উদ্দেশ্যে সরবরাহ করা হয়, এবং ‘যেমন আছে তেমন’ এবং ‘উপলব্ধ হওয়ার’ ভিত্তিতে সরবরাহ করা হয়। রেড ক্রস কোন ধরণের প্রকাশিত বা নিহিত প্রতিনিধিত্ব বা ওয়ারেন্টি তৈরি করে না। রেড ক্রস প্রকাশিত বা অন্তর্নিহিত সমস্ত ওয়ারেন্টি পরিত্যাগ করে, একটি নির্দিষ্ট উদ্দেশ্যে বাণিজ্য এবং উপযুক্ততার জন্য অন্তর্ভুক্ত কিন্তু অন্তর্নিহিত ওয়ারেন্টির মধ্যে তা সীমাবদ্ধ না। রেড ক্রস এবং এর কর্মচারী, কর্মকর্তা, প্রশাসক এবং প্রতিনিধি এবং লাইসেন্সধারীরা এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ব্যবহার থেকে উদ্ভূত কোন ধরণের ক্ষতির জন্য দায়বদ্ধ হবে না যার মধ্যে অন্তর্ভুক্ত রয়েছে তবে তা প্রত্যক্ষ, পরোক্ষ, আনুষঙ্গিক, শাস্তিমূলক এবং ফলস্বরূপ ক্ষতিতে সীমাবদ্ধ নয়।\n\nরেড ক্রস এপিআই, ডেটা ফিড, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজ ক্রম, নির্ভুলতা, সত্যতা বা সম্পূর্ণতার গ্যারান্টি দেয় না এবং এখানে প্রদত্ত এপিআই, ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রিপেয়ার, রেসপন্ড এবং রিকভার মেসেজের ক্ষেত্রে কোনও বিলম্ব, ভুল, বা কোন বাদ দেওয়ার সীমাবদ্ধতা ছাড়াই আপনার বা আপনার এন্ড ইউজার বা কোনও তৃতীয় পক্ষের কাছে দায়বদ্ধ থাকবে না।", "entire_agreement": { @@ -861,7 +859,7 @@ "heading": "সম্পূর্ণ চুক্তি:" }, "heading": "এপিআই এন্ড ইউজার লাইসেন্সিং চুক্তি", - "intro": "সম্মত: পরিষেবাটি ব্যবহার করার মাধ‍্যমে বা প্রদত্ত বক্সটিতে টিক দেওয়ার মাধ‍্যমে, ব্যবহারকারী এই চুক্তিতে আবদ্ধ হতে সম্মত হচ্ছেন।\n\nAPI এমন একটি টুল যা আপনাকে (”আপনি”) রেড ক্রস দ্বারা উপলব্ধ ডেটা ফিড গুলি পুনরুদ্ধার এবং ব্যবহার করতে দেয় যার মধ্যে রয়েছে বিশ্বব্যাপী আবহাওয়া এবং দুর্যোগের ঘটনার সতর্কতা এবং ঘড়ির বিজ্ঞপ্তিগুলো (”ইভেন্ট অ্যালার্ট”) এবং ঝুঁকির ধরণ এবং জরুরির দ্বারা কীভাবে স্থানীয় বিপদের জন্য প্রস্তুতি নেবেন সে সম্পর্কিত বিষয়ে কার্যকর এবং প্রাসঙ্গিক বার্তা গুলির একটি ফিড (\"প্রস্তুত করুন, প্রতিক্রিয়া জানান এবং বার্তা পুনরুদ্ধার করুন\" এবং ইভেন্ট অ্যালার্টের সাথে \"ডেটা ফিডস\")। প্রিপেয়ার, রেসপন্ড, এবং রিকভার বার্তা গুলোর উদ্দেশ্য ইভেন্ট অ্যালার্ট বা অন্যান্য সতর্কতার সাথে যুক্ত হওয়া এবং আপনার নিজের অ্যাপ্লিকেশনে আবহাওয়া এবং দুর্যোগের ঘটনার সাথে সম্পর্কিত বিজ্ঞপ্তিগুলো দেখা। আপনার ডেটা ফিড গুলির ব্যবহার এপিআই শর্তাবলী দ্বারা পরিচালিত হয়।", + "intro": "সম্মত: পরিষেবাটি ব্যবহার করার মাধ‍্যমে বা প্রদত্ত বক্সটিতে টিক দেওয়ার মাধ‍্যমে, ব্যবহারকারী এই চুক্তিতে আবদ্ধ হতে সম্মত হচ্ছেন।\n\nAPI এমন একটি টুল যা আপনাকে (”আপনি”) রেড ক্রস দ্বারা উপলব্ধ ডেটা ফিড গুলি পুনরুদ্ধার এবং ব্যবহার করতে দেয় যার মধ্যে রয়েছে বিশ্বব্যাপী আবহাওয়া এবং দুর্যোগের ঘটনার সতর্কতা এবং ঘড়ির বিজ্ঞপ্তিগুলো (”ইভেন্ট অ্যালার্ট”) এবং ঝুঁকির ধরণ এবং জরুরির দ্বারা কীভাবে স্থানীয় বিপদের জন্য প্রস্তুতি নেবেন সে সম্পর্কিত বিষয়ে কার্যকর এবং প্রাসঙ্গিক বার্তা গুলির একটি ফিড (\"প্রস্তুত করুন, প্রতিক্রিয়া জানান এবং বার্তা পুনরুদ্ধার করুন\" এবং ইভেন্ট অ্যালার্টের সাথে \"ডেটা ফিডS\")। প্রিপেয়ার, রেসপন্ড, এবং রিকভার বার্তা গুলোর উদ্দেশ্য ইভেন্ট অ্যালার্ট বা অন্যান্য সতর্কতার সাথে যুক্ত হওয়া এবং আপনার নিজের অ্যাপ্লিকেশনে আবহাওয়া এবং দুর্যোগের ঘটনার সাথে সম্পর্কিত বিজ্ঞপ্তিগুলো দেখা। আপনার ডেটা ফিড গুলির ব্যবহার এপিআই শর্তাবলী দ্বারা পরিচালিত হয়।", "license_limitations": { "body": "আপনি শুধুমাত্র API-এর শর্তাবলী সাপেক্ষে আপনার নিজের অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রেখে ডেটা ফিড গুলি ব্যবহার করতে পারেন এবং মাঝে মাঝে আপডেট হওয়ার সাথে সাথে আপনি API-এর সাথে সামঞ্জস্য বজায় রাখতে পারেন। আপনাকে এপিআই শর্তাবলী সাপেক্ষে ডেটা ফিডগুলি থেকে স্বতন্ত্র ইভেন্ট অ্যালার্ট এর জরুরি সেটিং-এর সাথে সামঞ্জস্য রেখে আপনার নিজস্ব অ্যাপ্লিকেশনের প্রান্তিক ব্যবহারকারীদের ইভেন্ট অ্যালার্ট এবং প্রাসঙ্গিক পরিপ্রেক্ষিত ভিত্তিক প্রস্তুতি, প্রতিক্রিয়া, এবং বার্তা পুনরুদ্ধার, ডাউনলোড, ব্যবহার, পুনরুত্পাদন এবং বিতরণ করার একটি অ-একচেটিয়া, সীমিত এবং প্রত্যাখ্যান যোগ্য অধিকার দেওয়া হয় (“প্রান্তিক ব্যবহারকারী”)। আপনি শুধুমাত্র এপিআই শর্তাবলী অনুসারে ডেটা ফিড গুলির অ-বাণিজ্যিক ব্যবহারের সুবিধার্থে এপিআই ব্যবহার করতে পারবেন। আপনি কোন ইভেন্টে এপিআই ব্যবহার করে ডেটা ফিডস, ইভেন্ট অ্যালার্ট এবং\/অথবা প্রস্তুতি, প্রতিক্রিয়া এবং বার্তা পুনরুদ্ধার, বাণিজ্যিক ব্যবহার সহজতর করতে পারবেন না।\nসীমাবদ্ধতা ছাড়াই, পুনরায় বিক্রয়, ওগুলোতে প্রবেশের মূল্য নেয়া, পুনরায় বিতরণ করার জন্য মূল্য গ্রহন, বা ওগুলোর উপর ভিত্তি করে কিছু তৈরি করা হলে তার উপর মূল্য গ্রহন করতে পারবেন না। রেড ক্রস এবং এর লাইসেন্স দাতারা এতে এবং এর মধ্যে API- এর সমস্ত শিরোনাম, মালিকানা, অধিকার এবং আগ্রহ বজায় রাখেন, বার্তার প্রস্তুতি, বার্তার প্রতিক্রিয়া এবং পুনরুদ্ধার, ইভেন্ট সতর্কতা, ডেটা ফিড এবং উত্স রেফারেন্স গুলি (নীচে সংজ্ঞায়িত হিসাবে) এতে রয়েছে। স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত অধিকার সংরক্ষিত।", "heading": "লাইসেন্স এবং সীমাবদ্ধতা:" diff --git a/resources/lang/de.json b/resources/lang/de.json index 2cd1495..8d5fd09 100644 --- a/resources/lang/de.json +++ b/resources/lang/de.json @@ -381,7 +381,10 @@ "less": "Weniger anzeigen", "user_can_do": "Anzeigen, wozu der Benutzer berechtigt ist:", "user_no_permission": "Der Benutzer hat keine Berechtigungen", - "soc_already_added": "Dieser Benutzer hat diese Gesellschaft bereits zugewiesen bekommen" + "soc_already_added": "Dieser Benutzer hat diese Gesellschaft bereits zugewiesen bekommen", + "access_permissions": "Zugriffsberechtigungen", + "can_access_legacy_whatnow": "Kann auf das alte WhatNow zugreifen", + "can_access_preparedness_v2": "Kann auf Preparedness v2 zugreifen" } }, "new_welcome": { diff --git a/resources/lang/en.json b/resources/lang/en.json index 31df4db..393e2e1 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -390,7 +390,10 @@ "less": "Show less", "user_can_do": "View what user has permission to do:", "user_no_permission": "User has not got any permissions", - "soc_already_added": "This user has already been assigned this society" + "soc_already_added": "This user has already been assigned this society", + "access_permissions": "Access Permissions", + "can_access_legacy_whatnow": "Can access legacy WhatNow", + "can_access_preparedness_v2": "Can access Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/es.json b/resources/lang/es.json index 684c543..bd82fe8 100644 --- a/resources/lang/es.json +++ b/resources/lang/es.json @@ -388,7 +388,10 @@ "less": "Mostrar menos", "user_can_do": "Ver qué permisos tiene el usuario:", "user_no_permission": "El usuario no tiene ningún permiso", - "soc_already_added": "Este usuario ya tiene asignada esta sociedad" + "soc_already_added": "Este usuario ya tiene asignada esta sociedad", + "access_permissions": "Permisos de acceso", + "can_access_legacy_whatnow": "Puede acceder al WhatNow heredado", + "can_access_preparedness_v2": "Puede acceder a Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/fr.json b/resources/lang/fr.json index 9cd4565..4ab0e83 100644 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -388,7 +388,10 @@ "less": "Afficher moins", "user_can_do": "Voir ce que l'utilisateur a la permission de faire :", "user_no_permission": "L'utilisateur n'a aucune permission", - "soc_already_added": "Cet utilisateur a déjà été assigné à cette société" + "soc_already_added": "Cet utilisateur a déjà été assigné à cette société", + "access_permissions": "Permissions d'accès", + "can_access_legacy_whatnow": "Peut accéder à WhatNow hérité", + "can_access_preparedness_v2": "Peut accéder à Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/ht.json b/resources/lang/ht.json index 01fc5cf..a27e2e7 100644 --- a/resources/lang/ht.json +++ b/resources/lang/ht.json @@ -378,7 +378,10 @@ "less": "Montre mwens", "user_can_do": "Wè sa itilizatè gen pèmisyon pou fè:", "user_no_permission": "Itilizatè a pa gen okenn pèmisyon.", - "soc_already_added": "Itilizatè sa a te deja asiyen sosyete sa a" + "soc_already_added": "Itilizatè sa a te deja asiyen sosyete sa a", + "access_permissions": "Pèmisyon aksè", + "can_access_legacy_whatnow": "Ka accede WhatNow ansyen", + "can_access_preparedness_v2": "Ka accede Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/id.json b/resources/lang/id.json index 5c859ff..ab7a98a 100644 --- a/resources/lang/id.json +++ b/resources/lang/id.json @@ -381,7 +381,10 @@ "less": "Tampilkan lebih sedikit", "user_can_do": "Lihat apa yang diizinkan untuk dilakukan pengguna:", "user_no_permission": "Pengguna belum mendapat izin apa pun", - "soc_already_added": "Pengguna telah ditugaskan untuk perhimpunan ini" + "soc_already_added": "Pengguna telah ditugaskan untuk perhimpunan ini", + "access_permissions": "Izin akses", + "can_access_legacy_whatnow": "Dapat mengakses WhatNow lama", + "can_access_preparedness_v2": "Dapat mengakses Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/it.json b/resources/lang/it.json index cf08629..a56f235 100644 --- a/resources/lang/it.json +++ b/resources/lang/it.json @@ -381,7 +381,10 @@ "less": "Mostra meno", "user_can_do": "Controllare quale utente ha l'autorizzazione per:", "user_no_permission": "L'utente non ha alcuna autorizzazione", - "soc_already_added": "A questo utente è già stata assegnata questa società" + "soc_already_added": "A questo utente è già stata assegnata questa società", + "access_permissions": "Permessi di accesso", + "can_access_legacy_whatnow": "Può accedere al WhatNow legacy", + "can_access_preparedness_v2": "Può accedere a Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/ja.json b/resources/lang/ja.json index 1507230..58d5b1d 100644 --- a/resources/lang/ja.json +++ b/resources/lang/ja.json @@ -381,7 +381,10 @@ "less": "少なく表示", "user_can_do": "権限のあるユーザーを表示:", "user_no_permission": "ユーザーには権限がありません", - "soc_already_added": "このユーザーは既に組織に割り当てられています" + "soc_already_added": "このユーザーは既に組織に割り当てられています", + "access_permissions": "アクセス権限", + "can_access_legacy_whatnow": "レガシーWhatNowにアクセスできます", + "can_access_preparedness_v2": "Preparedness v2にアクセスできます" } }, "new_welcome": { diff --git a/resources/lang/my.json b/resources/lang/my.json index 0984256..e2adbcf 100644 --- a/resources/lang/my.json +++ b/resources/lang/my.json @@ -378,7 +378,10 @@ "less": "အနည်းငယ်သာပြပါ", "user_can_do": "သုံးစွဲသူလုပ်ခွင့်ရှိသည်များကို ကြည့်ရှုပါ -", "user_no_permission": "အသုံးပြုသူသည် မည်သည့်ခွင့်ပြုချက်မရရှိပါ", - "soc_already_added": "ဤအသုံးပြုသူအား ဤအဖွဲ့အစည်းအတွက် တာဝန်ပေးအပ်ထားပြီးဖြစ်သည်" + "soc_already_added": "ဤအသုံးပြုသူအား ဤအဖွဲ့အစည်းအတွက် တာဝန်ပေးအပ်ထားပြီးဖြစ်သည်", + "access_permissions": "ဝင်ရောက်ခွင့် ခွင့်ပြုချက်များ", + "can_access_legacy_whatnow": "ဟောင်းနွမ်း WhatNow ကို ဝင်ရောက်နိုင်သည်", + "can_access_preparedness_v2": "Preparedness v2 ကို ဝင်ရောက်နိုင်သည်" } }, "new_welcome": { diff --git a/resources/lang/ne.json b/resources/lang/ne.json index 4e4773c..a12001f 100644 --- a/resources/lang/ne.json +++ b/resources/lang/ne.json @@ -378,7 +378,10 @@ "less": "कम देखाउनुहोस्", "user_can_do": "प्रयोगकर्ताकालाई के के गर्ने अनुमति छ देखाउनुहोस्\n", "user_no_permission": "प्रयोगकर्तासित कुनै पनि अनुमतिहरू छैन |", - "soc_already_added": "यो प्रयोगकर्तालाई पहिला नै यो सोसाइटी निर्धारीत भैसकेको छ ।" + "soc_already_added": "यो प्रयोगकर्तालाई पहिला नै यो सोसाइटी निर्धारीत भैसकेको छ ।", + "access_permissions": "पहुँच अनुमतिहरू", + "can_access_legacy_whatnow": "पुरानो WhatNow पहुँच गर्न सक्छ", + "can_access_preparedness_v2": "Preparedness v2 पहुँच गर्न सक्छ" } }, "new_welcome": { diff --git a/resources/lang/pt.json b/resources/lang/pt.json index cf0e722..5a651f8 100644 --- a/resources/lang/pt.json +++ b/resources/lang/pt.json @@ -381,7 +381,10 @@ "less": "Mostrar menos", "user_can_do": "Ver o que o utilizador tem permissão para fazer:", "user_no_permission": "O utilizador não tem nenhuma permissão", - "soc_already_added": "Este utilizador já foi atribuído a esta sociedade" + "soc_already_added": "Este utilizador já foi atribuído a esta sociedade", + "access_permissions": "Permissões de acesso", + "can_access_legacy_whatnow": "Pode aceder ao WhatNow legado", + "can_access_preparedness_v2": "Pode aceder ao Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/ru.json b/resources/lang/ru.json index fd4586c..6eed489 100644 --- a/resources/lang/ru.json +++ b/resources/lang/ru.json @@ -381,7 +381,10 @@ "less": "Показать меньше", "user_can_do": "Просмотреть права доступа пользователя:", "user_no_permission": "У пользователя нет прав доступа", - "soc_already_added": "Пользователь уже включен в данное сообщество" + "soc_already_added": "Пользователь уже включен в данное сообщество", + "access_permissions": "Разрешения доступа", + "can_access_legacy_whatnow": "Может получить доступ к устаревшему WhatNow", + "can_access_preparedness_v2": "Может получить доступ к Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/rw.json b/resources/lang/rw.json index a674d57..00c81ac 100644 --- a/resources/lang/rw.json +++ b/resources/lang/rw.json @@ -381,7 +381,10 @@ "less": "Garagaza bike", "user_can_do": "Reba ibyo umukoresha afitiye uburenganzira bwo gukora:", "user_no_permission": "Umukoresha nta ruhushya afite", - "soc_already_added": "Uyu mukoresha asanzwe yarashyizwe kuri iyi sosiyete" + "soc_already_added": "Uyu mukoresha asanzwe yarashyizwe kuri iyi sosiyete", + "access_permissions": "Uburenganzira bwo kwinjira", + "can_access_legacy_whatnow": "Ashobora kwinjira kuri WhatNow ya kera", + "can_access_preparedness_v2": "Ashobora kwinjira kuri Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/sw.json b/resources/lang/sw.json index ec9a6dd..c010d28 100644 --- a/resources/lang/sw.json +++ b/resources/lang/sw.json @@ -381,7 +381,10 @@ "less": "Onyesha kidogo", "user_can_do": "Tazama ni nini mtumiaji ana ruhusa ya kufanya:", "user_no_permission": "Mtumiaji hana ruhusa yoyote", - "soc_already_added": "Mtumiaji huyu tayari amepewa jamii hii" + "soc_already_added": "Mtumiaji huyu tayari amepewa jamii hii", + "access_permissions": "Ruhusa za ufikiaji", + "can_access_legacy_whatnow": "Anaweza kufikia WhatNow ya zamani", + "can_access_preparedness_v2": "Anaweza kufikia Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/th.json b/resources/lang/th.json index 6f31527..56f09d5 100644 --- a/resources/lang/th.json +++ b/resources/lang/th.json @@ -381,7 +381,10 @@ "less": "แสดงน้อยลง", "user_can_do": "ดูว่าบัญชีผู้ใช้ไหนได้รับอนุญาตในการดำเนินการ", "user_no_permission": "ผู้ใช้งานรายนี้ไม่ได้รับสิทธิ์ใดๆ", - "soc_already_added": "บัญชีผู้ใช้ผู้ใช้งานนี้ถูกจัดไว้ให้แก่สมาคมนี้แล้ว" + "soc_already_added": "บัญชีผู้ใช้ผู้ใช้งานนี้ถูกจัดไว้ให้แก่สมาคมนี้แล้ว", + "access_permissions": "สิทธิ์การเข้าถึง", + "can_access_legacy_whatnow": "สามารถเข้าถึง WhatNow เวอร์ชันเก่าได้", + "can_access_preparedness_v2": "สามารถเข้าถึง Preparedness v2 ได้" } }, "new_welcome": { diff --git a/resources/lang/tr.json b/resources/lang/tr.json index 3ee22d0..3492d4e 100644 --- a/resources/lang/tr.json +++ b/resources/lang/tr.json @@ -381,7 +381,10 @@ "less": "Daha az göster", "user_can_do": "Kullanıcının izinlerini gör:", "user_no_permission": "Kullanıcının üzerinde izin yok", - "soc_already_added": "Kullanıcı bu dernekte zaten kayıtlı" + "soc_already_added": "Kullanıcı bu dernekte zaten kayıtlı", + "access_permissions": "Erişim İzinleri", + "can_access_legacy_whatnow": "Eski WhatNow'a erişebilir", + "can_access_preparedness_v2": "Preparedness v2'ye erişebilir" } }, "new_welcome": { diff --git a/resources/lang/ur.json b/resources/lang/ur.json index b36edf1..1c8a11b 100644 --- a/resources/lang/ur.json +++ b/resources/lang/ur.json @@ -381,7 +381,10 @@ "less": "کم دکھائیں", "user_can_do": "استعمال کنندہ کو جتنی اجازت ہے دیکھے:", "user_no_permission": "صارف کو کوئی اجازت نہیں ملی ہے", - "soc_already_added": "اس استعمال کنندہ کو پہلے ہی یہ سوسائٹی دی جا چکی ہے" + "soc_already_added": "اس استعمال کنندہ کو پہلے ہی یہ سوسائٹی دی جا چکی ہے", + "access_permissions": "رسائی کی اجازتیں", + "can_access_legacy_whatnow": "پرانے WhatNow تک رسائی حاصل کر سکتا ہے", + "can_access_preparedness_v2": "Preparedness v2 تک رسائی حاصل کر سکتا ہے" } }, "new_welcome": { diff --git a/resources/lang/vi.json b/resources/lang/vi.json index 887f642..d861dcf 100644 --- a/resources/lang/vi.json +++ b/resources/lang/vi.json @@ -378,7 +378,10 @@ "less": "Thu gọn", "user_can_do": "Xem người dùng nào có quyền hạn làm:", "user_no_permission": "Người dùng không có quyền hạn nào", - "soc_already_added": "Người dùng đã được gán hội này" + "soc_already_added": "Người dùng đã được gán hội này", + "access_permissions": "Quyền truy cập", + "can_access_legacy_whatnow": "Có thể truy cập WhatNow phiên bản cũ", + "can_access_preparedness_v2": "Có thể truy cập Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/zh.json b/resources/lang/zh.json index 906f51e..3bd651f 100644 --- a/resources/lang/zh.json +++ b/resources/lang/zh.json @@ -381,7 +381,10 @@ "less": "收起", "user_can_do": "查看用户权限:", "user_no_permission": "用户尚未获得权限", - "soc_already_added": "此用户已分配至该红十字会" + "soc_already_added": "此用户已分配至该红十字会", + "access_permissions": "访问权限", + "can_access_legacy_whatnow": "可以访问旧版 WhatNow", + "can_access_preparedness_v2": "可以访问 Preparedness v2" } }, "new_welcome": { diff --git a/resources/lang/zh_CN.json b/resources/lang/zh_CN.json index e3a1f00..910eb91 100644 --- a/resources/lang/zh_CN.json +++ b/resources/lang/zh_CN.json @@ -381,7 +381,10 @@ "less": "顯示部分", "user_can_do": "查看用戶有哪些權限可操作:", "user_no_permission": "用戶沒有獲得任何權限", - "soc_already_added": "該用戶已經被分配了這個社群" + "soc_already_added": "該用戶已經被分配了這個社群", + "access_permissions": "訪問權限", + "can_access_legacy_whatnow": "可以訪問舊版 WhatNow", + "can_access_preparedness_v2": "可以訪問 Preparedness v2" } }, "new_welcome": {