@salesforce/ui-bundle-template-app-react-sample-b2x 2.2.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/CHANGELOG.md +17 -0
  2. package/dist/README.md +77 -27
  3. package/dist/force-app/main/default/applications/PropertyManagement.app-meta.xml +33 -0
  4. package/dist/force-app/main/default/data/Application__c.json +10 -10
  5. package/dist/force-app/main/default/data/data-plan.json +0 -6
  6. package/dist/force-app/main/default/objects/Application__c/fields/User__c.field-meta.xml +2 -2
  7. package/dist/force-app/main/default/objects/Property__c/Property__c.object-meta.xml +1 -1
  8. package/dist/force-app/main/default/permissionsets/Property_Management_Access.permissionset-meta.xml +76 -0
  9. package/dist/force-app/main/default/permissionsets/Property_Rental_Guest_User_Access.permissionset-meta.xml +217 -0
  10. package/dist/force-app/main/default/permissionsets/Tenant_Maintenance_Access.permissionset-meta.xml +1 -1
  11. package/dist/force-app/main/default/profiles/Property Rental Prospect Profile.profile-meta.xml +295 -0
  12. package/dist/force-app/main/default/roles/Admin.role-meta.xml +9 -0
  13. package/dist/force-app/main/default/sharingrules/Property__c.sharingRules-meta.xml +17 -0
  14. package/dist/force-app/main/default/tabs/Agent__c.tab-meta.xml +5 -0
  15. package/dist/force-app/main/default/tabs/Application__c.tab-meta.xml +5 -0
  16. package/dist/force-app/main/default/tabs/KPI_Snapshot__c.tab-meta.xml +5 -0
  17. package/dist/force-app/main/default/tabs/Lease__c.tab-meta.xml +5 -0
  18. package/dist/force-app/main/default/tabs/Maintenance_Request__c.tab-meta.xml +5 -0
  19. package/dist/force-app/main/default/tabs/Maintenance_Worker__c.tab-meta.xml +5 -0
  20. package/dist/force-app/main/default/tabs/Notification__c.tab-meta.xml +5 -0
  21. package/dist/force-app/main/default/tabs/Payment__c.tab-meta.xml +5 -0
  22. package/dist/force-app/main/default/tabs/Property_Cost__c.tab-meta.xml +5 -0
  23. package/dist/force-app/main/default/tabs/Property_Feature__c.tab-meta.xml +5 -0
  24. package/dist/force-app/main/default/tabs/Property_Image__c.tab-meta.xml +5 -0
  25. package/dist/force-app/main/default/tabs/Property_Listing__c.tab-meta.xml +5 -0
  26. package/dist/force-app/main/default/tabs/Property_Management_Company__c.tab-meta.xml +5 -0
  27. package/dist/force-app/main/default/tabs/Property_Owner__c.tab-meta.xml +5 -0
  28. package/dist/force-app/main/default/tabs/Property_Sale__c.tab-meta.xml +5 -0
  29. package/dist/force-app/main/default/tabs/Property__c.tab-meta.xml +5 -0
  30. package/dist/force-app/main/default/tabs/Tenant__c.tab-meta.xml +5 -0
  31. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/api/applications/applicationApi.ts +5 -6
  32. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/api/graphql-operations-types.ts +14751 -2937
  33. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/api/maintenanceRequests/maintenanceRequestApi.ts +4 -0
  34. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/api/query/tenantProperties.graphql +24 -0
  35. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/api/tenants/tenantApi.ts +23 -0
  36. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/components/alerts/status-alert.tsx +11 -8
  37. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/components/ui/input.tsx +1 -1
  38. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/context/TenantAccessContext.tsx +24 -12
  39. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/api/userProfileApi.ts +2 -1
  40. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/authenticationConfig.ts +9 -9
  41. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/context/AuthContext.tsx +21 -4
  42. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/forms/auth-form.tsx +15 -1
  43. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/hooks/form.tsx +1 -1
  44. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/layouts/privateRouteLayout.tsx +2 -11
  45. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/pages/ChangePassword.tsx +20 -4
  46. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/pages/ForgotPassword.tsx +19 -4
  47. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/pages/Login.tsx +19 -4
  48. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/pages/Profile.tsx +80 -43
  49. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/pages/Register.tsx +15 -4
  50. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/pages/ResetPassword.tsx +19 -4
  51. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/utils/helpers.ts +15 -52
  52. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/object-search/__examples__/pages/AccountObjectDetailPage.tsx +2 -4
  53. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/object-search/__examples__/pages/AccountSearch.tsx +7 -15
  54. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/object-search/components/filters/NumericRangeFilter.tsx +9 -5
  55. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/object-search/components/filters/SearchFilter.tsx +5 -3
  56. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/object-search/components/filters/TextFilter.tsx +5 -3
  57. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/object-search/hooks/useAsyncData.ts +11 -4
  58. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/hooks/useAsyncData.ts +67 -0
  59. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/hooks/useGeocode.ts +5 -9
  60. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/hooks/useMaintenanceRequests.ts +3 -11
  61. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/hooks/usePropertyDetail.ts +6 -17
  62. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/hooks/usePropertyMapMarkers.ts +43 -34
  63. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/hooks/useWeather.ts +2 -3
  64. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/pages/Application.tsx +45 -44
  65. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/pages/Contact.tsx +5 -9
  66. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/pages/Home.tsx +2 -3
  67. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/pages/Maintenance.tsx +43 -15
  68. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/pages/PropertySearch.tsx +21 -19
  69. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/routes.tsx +19 -25
  70. package/dist/package-lock.json +2 -2
  71. package/dist/package.json +1 -1
  72. package/dist/scripts/org-setup.config.json +18 -3
  73. package/dist/scripts/org-setup.mjs +528 -44
  74. package/package.json +1 -1
  75. package/dist/force-app/main/default/data/Contact.json +0 -44
  76. package/dist/force-app/main/default/scripts/org-setup.config.json +0 -9
  77. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/api/query/tenantAccess.graphql +0 -13
  78. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/api/tenantApi.ts +0 -12
  79. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/layout/card-skeleton.tsx +0 -38
  80. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/authentication/layouts/authenticationRouteLayout.tsx +0 -21
  81. package/dist/force-app/main/default/uiBundles/propertyrentalapp/src/features/object-search/hooks/useCachedAsyncData.ts +0 -188
package/dist/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.1.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v3.0.0...v3.1.0) (2026-05-12)
7
+
8
+
9
+ ### Features
10
+
11
+ * post tdx changes @W-22390798 ([#500](https://github.com/salesforce-experience-platform-emu/webapps/issues/500)) ([b611d9e](https://github.com/salesforce-experience-platform-emu/webapps/commit/b611d9ecbadd07d052bd7d9a4f5659dec422bf22))
12
+
13
+
14
+
15
+ ## [3.0.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v2.2.1...v3.0.0) (2026-05-11)
16
+
17
+ **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
18
+
19
+
20
+
21
+
22
+
6
23
  ## [2.2.1](https://github.com/salesforce-experience-platform-emu/webapps/compare/v2.2.0...v2.2.1) (2026-05-11)
7
24
 
8
25
  **Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
package/dist/README.md CHANGED
@@ -42,7 +42,7 @@ force-app/main/default/
42
42
  ├── layouts/ # Page layouts for all 17 custom objects
43
43
  ├── networks/ # Experience Cloud network metadata
44
44
  ├── objects/ # 17 Custom Objects (Property, Tenant, Lease, etc.)
45
- ├── permissionsets/ # Access: Property_Management (Admin) & Tenant (Scoped)
45
+ ├── permissionsets/ # Property_Rental_Guest_User_Access (guest browsing)
46
46
  ├── sites/ # Salesforce Sites configuration
47
47
  ├── triggers/ # Apex Triggers: MaintenanceRequest & Tenant
48
48
  └── uiBundles/
@@ -109,6 +109,8 @@ npm run setup -- --target-org <alias> --yes
109
109
  | `--skip-data` | Skip data preparation and import |
110
110
  | `--skip-graphql` | Skip GraphQL schema fetch and codegen |
111
111
  | `--skip-ui-bundle-build` | Skip `npm install` and UI Bundle build |
112
+ | `--skip-role` | Skip role assignment to current user |
113
+ | `--skip-self-reg` | Skip Experience Cloud self-registration configuration |
112
114
  | `--skip-dev` | Do not launch the dev server at the end |
113
115
  | `--permset-name <name>` | Assign only a specific permission set (repeatable). Default: all sets in the project |
114
116
  | `--ui-bundle-name <name>` | UI Bundle folder name under `uiBundles/` (default: auto-detected) |
@@ -120,6 +122,58 @@ For a full list of options:
120
122
  npm run setup -- --help
121
123
  ```
122
124
 
125
+ ### Setup Configuration (`scripts/org-setup.config.json`)
126
+
127
+ The `npm run setup` script reads `scripts/org-setup.config.json` to control which steps run and how they behave. Each top-level section is **optional** — if a section is absent, the corresponding step is hidden from the interactive picker.
128
+
129
+ ```json
130
+ {
131
+ "permsetAssignments": {
132
+ "assignments": {
133
+ "Property_Management_Access": { "assignee": "currentUser" },
134
+ "Tenant_Maintenance_Access": { "assignee": "skip" },
135
+ "Property_Rental_Guest_User_Access": {
136
+ "assignee": "guestUser",
137
+ "siteName": "propertyrentalapp"
138
+ }
139
+ }
140
+ },
141
+ "role": {
142
+ "assignee": "currentUser",
143
+ "roleName": "Admin"
144
+ },
145
+ "selfRegistration": {
146
+ "siteName": "propertyrentalapp",
147
+ "selfRegProfile": "Property Rental Prospect Profile",
148
+ "accountName": "Property Rental Self-Registration"
149
+ }
150
+ }
151
+ ```
152
+
153
+ #### `permsetAssignments.assignments`
154
+
155
+ Each key is a permission set API name. The `assignee` value controls who it is assigned to:
156
+
157
+ | Value | Behavior |
158
+ | ---------------- | --------------------------------------------------------------------------------- |
159
+ | `"currentUser"` | Assigns to the user running the script (resolved via `sf org display`) |
160
+ | `"skip"` | Explicitly skips this permission set |
161
+ | `"guestUser"` | Auto-resolves the site's guest user (requires `siteName` field on the same entry) |
162
+ | `"user@org.com"` | Assigns to a specific user by username |
163
+
164
+ #### `role`
165
+
166
+ Assigns a role to the current user — a prerequisite for Experience Cloud self-registration. Only `"currentUser"` is supported as the `assignee`.
167
+
168
+ #### `selfRegistration`
169
+
170
+ Enables Experience Cloud self-registration by:
171
+
172
+ 1. Setting `<selfRegistration>true</selfRegistration>` in the network metadata
173
+ 2. Adding the specified profile to network member groups
174
+ 3. Creating an Account record for self-registered users
175
+ 4. Creating the `NetworkSelfRegistration` record
176
+
123
177
  > **After the automated setup completes**, proceed to [Org Configuration](#org-configuration) for the manual steps that cannot be automated via CLI (profile cloning, site member configuration, guest user setup, and publishing the Experience Cloud site).
124
178
 
125
179
  ---
@@ -215,12 +269,13 @@ sf project deploy start --source-dir force-app/main/default/uiBundles --target-o
215
269
 
216
270
  ### 4. Assign Permission Sets
217
271
 
218
- Two permission sets are included in this project:
272
+ Three permission sets are included in this project:
219
273
 
220
- | Permission Set | Purpose | Assign To |
221
- | ---------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------- |
222
- | `Property_Management_Access` | Full CRUD access to all custom objects. Intended for property managers and admin users. | Internal users managing the app |
223
- | `Tenant_Maintenance_Access` | Scoped read/write access for tenants. Allows creating and updating their own maintenance requests only. | Tenant community users |
274
+ | Permission Set | Purpose | Assign To |
275
+ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------- |
276
+ | `Property_Management_Access` | Full CRUD access to all custom objects. Intended for property managers and admin users. | Internal users managing the app |
277
+ | `Tenant_Maintenance_Access` | Scoped read/write access for tenants. Allows creating and updating their own maintenance requests only. | Tenant community users |
278
+ | `Property_Rental_Guest_User_Access` | Read-only access to property objects for unauthenticated browsing. Includes Apex class access for auth flows. | Site guest user |
224
279
 
225
280
  Assign permission sets using the CLI:
226
281
 
@@ -308,9 +363,9 @@ Community users require a profile that is based on one of the standard community
308
363
  #### 2a. Clone the Base Profile
309
364
 
310
365
  1. Go to **Setup > Users > Profiles**.
311
- 2. Locate either **Customer Community User** or **Customer Community Plus User**.
312
- - Choose **Customer Community Plus User** if you need ownership-based record-level sharing (recommended).
313
- 3. Click **Clone** next to the profile. Give it a descriptive name such as `Property Rental Tenant`.
366
+ 2. Locate either **Customer Community User** or **Customer Community Login User**.
367
+ - Choose **Customer Community Plus User** if you need ownership-based record-level sharing.
368
+ 3. Click **Clone** next to the profile. Give it a descriptive name such as `Property Rental Prospect Profile`.
314
369
  4. Click **Save**.
315
370
 
316
371
  #### 2b. Edit the Cloned Profile
@@ -398,7 +453,7 @@ After deploying the Experience Cloud site metadata, configure its membership and
398
453
  #### Members
399
454
 
400
455
  1. In the left navigation, click **Members**.
401
- 2. Under **Select Profiles**, add the cloned community profile (`Property Rental Tenant`) to the **Selected Profiles** list.
456
+ 2. Under **Select Profiles**, add the cloned community profile (`Property Rental Prospect Profile`) to the **Selected Profiles** list.
402
457
  3. Click **Save**.
403
458
 
404
459
  #### Login & Registration
@@ -406,7 +461,7 @@ After deploying the Experience Cloud site metadata, configure its membership and
406
461
  1. In the left navigation, click **Login & Registration**.
407
462
  2. Check **Allow customers and partners to self-register**.
408
463
  3. Under **Registration**, set:
409
- - **Profile**: Select your cloned community profile (`Property Rental Tenant`).
464
+ - **Profile**: Select your cloned community profile (`Property Rental Prospect Profile`).
410
465
  - **Account**: Select or create an account record to associate self-registered users with (e.g., a generic "Portal Account").
411
466
  4. Click **Save**.
412
467
 
@@ -457,32 +512,27 @@ Add the following classes. These are required for the self-registration and logi
457
512
 
458
513
  ### Step 5: Create Criteria-Based Sharing Rules for Guest Access
459
514
 
460
- By default, Salesforce does not expose any records to guest users. You must create **criteria-based sharing rules** to make available properties and listings visible to unauthenticated site visitors.
515
+ By default, Salesforce does not expose any records to guest users. A **criteria-based sharing rule** is included in the deployed metadata to make properties visible to unauthenticated site visitors.
461
516
 
462
517
  > **Organization-Wide Defaults (OWD):** Criteria-based sharing rules for guest users only work correctly when the object's OWD is set to **Public Read Only** or **Private**. Verify your OWD settings at **Setup > Sharing Settings** before proceeding.
463
518
 
464
- #### Create a Sharing Rule for Properties
519
+ #### Included Sharing Rule: Properties
520
+
521
+ The deployed metadata includes a sharing rule for `Property__c` (`Property_Rental_App_Guest_User_Access`) that grants **Read** access to the site's guest user for all properties with a non-empty Name field. This is deployed automatically with `sf project deploy start`.
522
+
523
+ #### Optional: Create Additional Sharing Rules
524
+
525
+ If you need to expose additional objects (e.g., Property Listings) to guest users, create sharing rules manually:
465
526
 
466
527
  1. Go to **Setup > Sharing Settings**.
467
- 2. Scroll to the **Property Sharing Rules** section and click **New**.
528
+ 2. Scroll to the relevant object's sharing rules section and click **New**.
468
529
  3. Configure the rule:
469
- - **Label**: `Available Properties for Guest Users`
470
530
  - **Rule Type**: Select **Guest user access, based on criteria**
471
- - **Criteria**: `Status Equals Available` (adjust the field and value to match your data model)
472
- - **Share with**: Select **Guests of the Property Rental App site** (the guest user group for your Experience Cloud site)
531
+ - **Criteria**: Match records you want to expose (e.g., `Status Equals Active`)
532
+ - **Share with**: Select **Guests of the Property Rental App site**
473
533
  - **Access Level**: `Read Only`
474
534
  4. Click **Save**.
475
535
 
476
- #### Create a Sharing Rule for Property Listings
477
-
478
- Repeat the same steps in the **Property Listing Sharing Rules** section:
479
-
480
- - **Label**: `Available Property Listings for Guest Users`
481
- - **Rule Type**: `Guest user access, based on criteria`
482
- - **Criteria**: Match listings you want to expose (e.g., `Status Equals Active`)
483
- - **Share with**: `Guests of the Property Rental App site`
484
- - **Access Level**: `Read Only`
485
-
486
536
  > **Note:** The "Guests of [site name]" option only appears in the sharing rule target list after the Experience Cloud site has been created and saved. If you do not see it, confirm the site metadata has been deployed and the site exists in the org.
487
537
 
488
538
  ---
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CustomApplication xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <defaultLandingTab>standard-home</defaultLandingTab>
4
+ <description>Property Rental Management Application for managing properties, tenants, leases, payments, and maintenance.</description>
5
+ <formFactors>Large</formFactors>
6
+ <isNavAutoTempTabsDisabled>false</isNavAutoTempTabsDisabled>
7
+ <isNavPersonalizationDisabled>false</isNavPersonalizationDisabled>
8
+ <isNavTabPersistenceDisabled>false</isNavTabPersistenceDisabled>
9
+ <isOmniPinnedViewEnabled>false</isOmniPinnedViewEnabled>
10
+ <label>Property Management</label>
11
+ <navType>Standard</navType>
12
+ <tabs>standard-home</tabs>
13
+ <tabs>Property__c</tabs>
14
+ <tabs>Property_Listing__c</tabs>
15
+ <tabs>Tenant__c</tabs>
16
+ <tabs>Lease__c</tabs>
17
+ <tabs>Payment__c</tabs>
18
+ <tabs>Maintenance_Request__c</tabs>
19
+ <tabs>Maintenance_Worker__c</tabs>
20
+ <tabs>Application__c</tabs>
21
+ <tabs>Property_Owner__c</tabs>
22
+ <tabs>Property_Management_Company__c</tabs>
23
+ <tabs>Property_Cost__c</tabs>
24
+ <tabs>Property_Feature__c</tabs>
25
+ <tabs>Property_Image__c</tabs>
26
+ <tabs>Property_Sale__c</tabs>
27
+ <tabs>KPI_Snapshot__c</tabs>
28
+ <tabs>Notification__c</tabs>
29
+ <tabs>Agent__c</tabs>
30
+ <tabs>standard-report</tabs>
31
+ <tabs>standard-Dashboard</tabs>
32
+ <uiType>Lightning</uiType>
33
+ </CustomApplication>
@@ -6,7 +6,7 @@
6
6
  "referenceId": "ApplicationRef1"
7
7
  },
8
8
  "Property__c": "@PropertyRef5",
9
- "User__c": "@ContactRef1",
9
+ "User__c": null,
10
10
  "Status__c": "Submitted",
11
11
  "Start_Date__c": "2024-12-01",
12
12
  "Employment__c": "TechCorp Inc. - Senior Software Engineer - $95,000/year",
@@ -18,7 +18,7 @@
18
18
  "referenceId": "ApplicationRef2"
19
19
  },
20
20
  "Property__c": "@PropertyRef8",
21
- "User__c": "@ContactRef2",
21
+ "User__c": null,
22
22
  "Status__c": "Background Check",
23
23
  "Start_Date__c": "2024-12-15",
24
24
  "Employment__c": "City Hospital - Registered Nurse - $72,000/year",
@@ -30,7 +30,7 @@
30
30
  "referenceId": "ApplicationRef3"
31
31
  },
32
32
  "Property__c": "@PropertyRef12",
33
- "User__c": "@ContactRef3",
33
+ "User__c": null,
34
34
  "Status__c": "Approved",
35
35
  "Start_Date__c": "2024-11-01",
36
36
  "Employment__c": "Global Consulting LLC - Management Consultant - $110,000/year",
@@ -42,7 +42,7 @@
42
42
  "referenceId": "ApplicationRef4"
43
43
  },
44
44
  "Property__c": "@PropertyRef5",
45
- "User__c": "@ContactRef3",
45
+ "User__c": null,
46
46
  "Status__c": "Rejected",
47
47
  "Start_Date__c": "2024-12-01",
48
48
  "Employment__c": "Retail Store - Assistant Manager - $32,000/year",
@@ -54,7 +54,7 @@
54
54
  "referenceId": "ApplicationRef5"
55
55
  },
56
56
  "Property__c": "@PropertyRef16",
57
- "User__c": "@ContactRef3",
57
+ "User__c": null,
58
58
  "Status__c": "Draft",
59
59
  "Start_Date__c": "2025-01-15",
60
60
  "Employment__c": "University - Graduate Student - $18,000/year stipend",
@@ -66,7 +66,7 @@
66
66
  "referenceId": "ApplicationRef6"
67
67
  },
68
68
  "Property__c": "@PropertyRef20",
69
- "User__c": "@ContactRef3",
69
+ "User__c": null,
70
70
  "Status__c": "Submitted",
71
71
  "Start_Date__c": "2025-01-01",
72
72
  "Employment__c": "Local Business - Marketing Coordinator - $48,000/year (Co-signer: Parent, $85,000/year)",
@@ -78,7 +78,7 @@
78
78
  "referenceId": "ApplicationRef7"
79
79
  },
80
80
  "Property__c": "@PropertyRef8",
81
- "User__c": "@ContactRef3",
81
+ "User__c": null,
82
82
  "Status__c": "Background Check",
83
83
  "Start_Date__c": "2024-12-20",
84
84
  "Employment__c": "Finance Corp - Financial Analyst - $78,000/year",
@@ -90,7 +90,7 @@
90
90
  "referenceId": "ApplicationRef8"
91
91
  },
92
92
  "Property__c": "@PropertyRef3",
93
- "User__c": "@ContactRef3",
93
+ "User__c": null,
94
94
  "Status__c": "Approved",
95
95
  "Start_Date__c": "2024-10-01",
96
96
  "Employment__c": "Design Studio - UX Designer - $68,000/year",
@@ -102,7 +102,7 @@
102
102
  "referenceId": "ApplicationRef9"
103
103
  },
104
104
  "Property__c": "@PropertyRef12",
105
- "User__c": "@ContactRef3",
105
+ "User__c": null,
106
106
  "Status__c": "Rejected",
107
107
  "Start_Date__c": "2024-10-25",
108
108
  "Employment__c": "Various part-time positions - $25,000/year",
@@ -114,7 +114,7 @@
114
114
  "referenceId": "ApplicationRef10"
115
115
  },
116
116
  "Property__c": "@PropertyRef5",
117
- "User__c": "@ContactRef3",
117
+ "User__c": null,
118
118
  "Status__c": "Submitted",
119
119
  "Start_Date__c": "2024-12-10",
120
120
  "Employment__c": "Teaching - High School Teacher - $55,000/year",
@@ -1,10 +1,4 @@
1
1
  [
2
- {
3
- "sobject": "Contact",
4
- "saveRefs": true,
5
- "resolveRefs": false,
6
- "files": ["Contact.json"]
7
- },
8
2
  {
9
3
  "sobject": "Agent__c",
10
4
  "saveRefs": true,
@@ -2,10 +2,10 @@
2
2
  <CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
3
3
  <fullName>User__c</fullName>
4
4
  <deleteConstraint>SetNull</deleteConstraint>
5
- <description>The person applying (Contact record)</description>
5
+ <description>The person applying (User record)</description>
6
6
  <externalId>false</externalId>
7
7
  <label>Applicant</label>
8
- <referenceTo>Contact</referenceTo>
8
+ <referenceTo>User</referenceTo>
9
9
  <relationshipLabel>Applications</relationshipLabel>
10
10
  <relationshipName>Applications</relationshipName>
11
11
  <required>false</required>
@@ -53,7 +53,7 @@
53
53
  <enableSearch>true</enableSearch>
54
54
  <enableSharing>true</enableSharing>
55
55
  <enableStreamingApi>true</enableStreamingApi>
56
- <externalSharingModel>Private</externalSharingModel>
56
+ <externalSharingModel>Read</externalSharingModel>
57
57
  <label>Property</label>
58
58
  <nameField>
59
59
  <label>Property Name</label>
@@ -630,4 +630,80 @@
630
630
  <field>Tenant__c.Status__c</field>
631
631
  <readable>true</readable>
632
632
  </fieldPermissions>
633
+
634
+ <!-- Application Permissions -->
635
+ <applicationVisibilities>
636
+ <application>PropertyManagement</application>
637
+ <visible>true</visible>
638
+ </applicationVisibilities>
639
+
640
+ <!-- Tab Permissions -->
641
+ <tabSettings>
642
+ <tab>Agent__c</tab>
643
+ <visibility>Visible</visibility>
644
+ </tabSettings>
645
+ <tabSettings>
646
+ <tab>Application__c</tab>
647
+ <visibility>Visible</visibility>
648
+ </tabSettings>
649
+ <tabSettings>
650
+ <tab>KPI_Snapshot__c</tab>
651
+ <visibility>Visible</visibility>
652
+ </tabSettings>
653
+ <tabSettings>
654
+ <tab>Lease__c</tab>
655
+ <visibility>Visible</visibility>
656
+ </tabSettings>
657
+ <tabSettings>
658
+ <tab>Maintenance_Request__c</tab>
659
+ <visibility>Visible</visibility>
660
+ </tabSettings>
661
+ <tabSettings>
662
+ <tab>Maintenance_Worker__c</tab>
663
+ <visibility>Visible</visibility>
664
+ </tabSettings>
665
+ <tabSettings>
666
+ <tab>Notification__c</tab>
667
+ <visibility>Visible</visibility>
668
+ </tabSettings>
669
+ <tabSettings>
670
+ <tab>Payment__c</tab>
671
+ <visibility>Visible</visibility>
672
+ </tabSettings>
673
+ <tabSettings>
674
+ <tab>Property__c</tab>
675
+ <visibility>Visible</visibility>
676
+ </tabSettings>
677
+ <tabSettings>
678
+ <tab>Property_Cost__c</tab>
679
+ <visibility>Visible</visibility>
680
+ </tabSettings>
681
+ <tabSettings>
682
+ <tab>Property_Feature__c</tab>
683
+ <visibility>Visible</visibility>
684
+ </tabSettings>
685
+ <tabSettings>
686
+ <tab>Property_Image__c</tab>
687
+ <visibility>Visible</visibility>
688
+ </tabSettings>
689
+ <tabSettings>
690
+ <tab>Property_Listing__c</tab>
691
+ <visibility>Visible</visibility>
692
+ </tabSettings>
693
+ <tabSettings>
694
+ <tab>Property_Management_Company__c</tab>
695
+ <visibility>Visible</visibility>
696
+ </tabSettings>
697
+ <tabSettings>
698
+ <tab>Property_Owner__c</tab>
699
+ <visibility>Visible</visibility>
700
+ </tabSettings>
701
+ <tabSettings>
702
+ <tab>Property_Sale__c</tab>
703
+ <visibility>Visible</visibility>
704
+ </tabSettings>
705
+ <tabSettings>
706
+ <tab>Tenant__c</tab>
707
+ <visibility>Visible</visibility>
708
+ </tabSettings>
633
709
  </PermissionSet>
@@ -0,0 +1,217 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <label>Property Rental Guest User Access</label>
4
+ <hasActivationRequired>false</hasActivationRequired>
5
+ <classAccesses>
6
+ <apexClass>UIBundleForgotPassword</apexClass>
7
+ <enabled>true</enabled>
8
+ </classAccesses>
9
+ <classAccesses>
10
+ <apexClass>UIBundleLogin</apexClass>
11
+ <enabled>true</enabled>
12
+ </classAccesses>
13
+ <classAccesses>
14
+ <apexClass>UIBundleRegistration</apexClass>
15
+ <enabled>true</enabled>
16
+ </classAccesses>
17
+ <fieldPermissions>
18
+ <editable>false</editable>
19
+ <field>Property_Cost__c.Description__c</field>
20
+ <readable>true</readable>
21
+ </fieldPermissions>
22
+ <fieldPermissions>
23
+ <editable>false</editable>
24
+ <field>Property_Cost__c.Vendor__c</field>
25
+ <readable>true</readable>
26
+ </fieldPermissions>
27
+ <fieldPermissions>
28
+ <editable>false</editable>
29
+ <field>Property_Feature__c.Description__c</field>
30
+ <readable>true</readable>
31
+ </fieldPermissions>
32
+ <fieldPermissions>
33
+ <editable>false</editable>
34
+ <field>Property_Feature__c.Display_on_Listing__c</field>
35
+ <readable>true</readable>
36
+ </fieldPermissions>
37
+ <fieldPermissions>
38
+ <editable>false</editable>
39
+ <field>Property_Image__c.Alt_Text__c</field>
40
+ <readable>true</readable>
41
+ </fieldPermissions>
42
+ <fieldPermissions>
43
+ <editable>false</editable>
44
+ <field>Property_Image__c.Display_Order__c</field>
45
+ <readable>true</readable>
46
+ </fieldPermissions>
47
+ <fieldPermissions>
48
+ <editable>false</editable>
49
+ <field>Property_Listing__c.Display_Order__c</field>
50
+ <readable>true</readable>
51
+ </fieldPermissions>
52
+ <fieldPermissions>
53
+ <editable>false</editable>
54
+ <field>Property_Listing__c.Featured__c</field>
55
+ <readable>true</readable>
56
+ </fieldPermissions>
57
+ <fieldPermissions>
58
+ <editable>false</editable>
59
+ <field>Property_Listing__c.Marketing_Description__c</field>
60
+ <readable>true</readable>
61
+ </fieldPermissions>
62
+ <fieldPermissions>
63
+ <editable>false</editable>
64
+ <field>Property_Listing__c.Short_Description__c</field>
65
+ <readable>true</readable>
66
+ </fieldPermissions>
67
+ <fieldPermissions>
68
+ <editable>false</editable>
69
+ <field>Property__c.Address__c</field>
70
+ <readable>true</readable>
71
+ </fieldPermissions>
72
+ <fieldPermissions>
73
+ <editable>false</editable>
74
+ <field>Property__c.Agent__c</field>
75
+ <readable>true</readable>
76
+ </fieldPermissions>
77
+ <fieldPermissions>
78
+ <editable>false</editable>
79
+ <field>Property__c.Available_Date__c</field>
80
+ <readable>true</readable>
81
+ </fieldPermissions>
82
+ <fieldPermissions>
83
+ <editable>false</editable>
84
+ <field>Property__c.Bathrooms__c</field>
85
+ <readable>true</readable>
86
+ </fieldPermissions>
87
+ <fieldPermissions>
88
+ <editable>false</editable>
89
+ <field>Property__c.Bedrooms__c</field>
90
+ <readable>true</readable>
91
+ </fieldPermissions>
92
+ <fieldPermissions>
93
+ <editable>false</editable>
94
+ <field>Property__c.Coordinates__c</field>
95
+ <readable>true</readable>
96
+ </fieldPermissions>
97
+ <fieldPermissions>
98
+ <editable>false</editable>
99
+ <field>Property__c.Deposit__c</field>
100
+ <readable>true</readable>
101
+ </fieldPermissions>
102
+ <fieldPermissions>
103
+ <editable>false</editable>
104
+ <field>Property__c.Description__c</field>
105
+ <readable>true</readable>
106
+ </fieldPermissions>
107
+ <fieldPermissions>
108
+ <editable>false</editable>
109
+ <field>Property__c.Features__c</field>
110
+ <readable>true</readable>
111
+ </fieldPermissions>
112
+ <fieldPermissions>
113
+ <editable>false</editable>
114
+ <field>Property__c.Hero_Image__c</field>
115
+ <readable>true</readable>
116
+ </fieldPermissions>
117
+ <fieldPermissions>
118
+ <editable>false</editable>
119
+ <field>Property__c.Lease_Term__c</field>
120
+ <readable>true</readable>
121
+ </fieldPermissions>
122
+ <fieldPermissions>
123
+ <editable>false</editable>
124
+ <field>Property__c.Monthly_Rent__c</field>
125
+ <readable>true</readable>
126
+ </fieldPermissions>
127
+ <fieldPermissions>
128
+ <editable>false</editable>
129
+ <field>Property__c.Parking__c</field>
130
+ <readable>true</readable>
131
+ </fieldPermissions>
132
+ <fieldPermissions>
133
+ <editable>false</editable>
134
+ <field>Property__c.Pet_Friendly__c</field>
135
+ <readable>true</readable>
136
+ </fieldPermissions>
137
+ <fieldPermissions>
138
+ <editable>false</editable>
139
+ <field>Property__c.Sq_Ft__c</field>
140
+ <readable>true</readable>
141
+ </fieldPermissions>
142
+ <fieldPermissions>
143
+ <editable>false</editable>
144
+ <field>Property__c.Status__c</field>
145
+ <readable>true</readable>
146
+ </fieldPermissions>
147
+ <fieldPermissions>
148
+ <editable>false</editable>
149
+ <field>Property__c.Tour_URL__c</field>
150
+ <readable>true</readable>
151
+ </fieldPermissions>
152
+ <fieldPermissions>
153
+ <editable>false</editable>
154
+ <field>Property__c.Type__c</field>
155
+ <readable>true</readable>
156
+ </fieldPermissions>
157
+ <fieldPermissions>
158
+ <editable>false</editable>
159
+ <field>Property__c.Utilities__c</field>
160
+ <readable>true</readable>
161
+ </fieldPermissions>
162
+ <fieldPermissions>
163
+ <editable>false</editable>
164
+ <field>Property__c.Year_Built__c</field>
165
+ <readable>true</readable>
166
+ </fieldPermissions>
167
+ <objectPermissions>
168
+ <allowCreate>false</allowCreate>
169
+ <allowDelete>false</allowDelete>
170
+ <allowEdit>false</allowEdit>
171
+ <allowRead>true</allowRead>
172
+ <modifyAllRecords>false</modifyAllRecords>
173
+ <object>Property_Cost__c</object>
174
+ <viewAllFields>false</viewAllFields>
175
+ <viewAllRecords>false</viewAllRecords>
176
+ </objectPermissions>
177
+ <objectPermissions>
178
+ <allowCreate>false</allowCreate>
179
+ <allowDelete>false</allowDelete>
180
+ <allowEdit>false</allowEdit>
181
+ <allowRead>true</allowRead>
182
+ <modifyAllRecords>false</modifyAllRecords>
183
+ <object>Property_Feature__c</object>
184
+ <viewAllFields>false</viewAllFields>
185
+ <viewAllRecords>false</viewAllRecords>
186
+ </objectPermissions>
187
+ <objectPermissions>
188
+ <allowCreate>false</allowCreate>
189
+ <allowDelete>false</allowDelete>
190
+ <allowEdit>false</allowEdit>
191
+ <allowRead>true</allowRead>
192
+ <modifyAllRecords>false</modifyAllRecords>
193
+ <object>Property_Image__c</object>
194
+ <viewAllFields>false</viewAllFields>
195
+ <viewAllRecords>false</viewAllRecords>
196
+ </objectPermissions>
197
+ <objectPermissions>
198
+ <allowCreate>false</allowCreate>
199
+ <allowDelete>false</allowDelete>
200
+ <allowEdit>false</allowEdit>
201
+ <allowRead>true</allowRead>
202
+ <modifyAllRecords>false</modifyAllRecords>
203
+ <object>Property_Listing__c</object>
204
+ <viewAllFields>false</viewAllFields>
205
+ <viewAllRecords>false</viewAllRecords>
206
+ </objectPermissions>
207
+ <objectPermissions>
208
+ <allowCreate>false</allowCreate>
209
+ <allowDelete>false</allowDelete>
210
+ <allowEdit>false</allowEdit>
211
+ <allowRead>true</allowRead>
212
+ <modifyAllRecords>false</modifyAllRecords>
213
+ <object>Property__c</object>
214
+ <viewAllFields>false</viewAllFields>
215
+ <viewAllRecords>false</viewAllRecords>
216
+ </objectPermissions>
217
+ </PermissionSet>
@@ -36,7 +36,7 @@
36
36
  <readable>true</readable>
37
37
  </fieldPermissions>
38
38
  <fieldPermissions>
39
- <editable>false</editable>
39
+ <editable>true</editable>
40
40
  <field>Maintenance_Request__c.Property__c</field>
41
41
  <readable>true</readable>
42
42
  </fieldPermissions>