diff --git a/README.md b/README.md index d3d90f59..f5686492 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ If you have any fixes or suggestions, simply send us a pull request! ### Running The Site Locally -You will need [Ruby](https://www.ruby-lang.org/en/documentation/installation/), [Bundler](http://bundler.io/), and [npm](https://www.npmjs.com/get-npm). +You will need [Ruby](https://www.ruby-lang.org/en/documentation/installation/), [Bundler](https://bundler.io/), and [npm](https://www.npmjs.com/get-npm). Clone this repository, then install Jekyll and node packages: diff --git a/_config.yml b/_config.yml index ab9e9124..204cbf5b 100644 --- a/_config.yml +++ b/_config.yml @@ -10,7 +10,7 @@ name: Parse Platform Docs title: Parse Docs email: community@parseplatform.org description: The open source docs for the Parse platform SDKs & other guides. -url: "http://docs.parseplatform.org" # the base hostname & protocol for your site +url: "https://docs.parseplatform.org" # the base hostname & protocol for your site repository: parse-community/docs twitter_username: parseplatform github_username: parseplatform diff --git a/_includes/android/push-notifications.md b/_includes/android/push-notifications.md index 7968d2c2..9e9d46d1 100644 --- a/_includes/android/push-notifications.md +++ b/_includes/android/push-notifications.md @@ -32,7 +32,7 @@ While it is possible to modify a `ParseInstallation` just like you would a `Pars * **`appVersion`**: The version string of the client application to which this installation belongs. This value is synchronized every time a `ParseInstallation` object is saved from the device _(readonly)_. * **`parseVersion`**: The version of the Parse SDK which this installation uses. This value is synchronized every time a `ParseInstallation` object is saved from the device _(readonly)_. * **`timeZone`**: The current time zone where the target device is located. This value is synchronized every time a `ParseInstallation` object is saved from the device _(readonly)_. -* **`localeIdentifier`**: The locale identifier of the device in the format [language code]-[COUNTRY CODE]. The language codes are two-letter lowercase ISO language codes (such as "en") as defined by [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1). The country codes are two-letter uppercase ISO country codes (such as "US") as defined by [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). This value is synchronized every time a `ParseInstallation` object is saved from the device _(readonly)_. +* **`localeIdentifier`**: The locale identifier of the device in the format [language code]-[COUNTRY CODE]. The language codes are two-letter lowercase ISO language codes (such as "en") as defined by [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1). The country codes are two-letter uppercase ISO country codes (such as "US") as defined by [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). This value is synchronized every time a `ParseInstallation` object is saved from the device _(readonly)_. * **`badge`**: The current value of the icon badge for iOS apps. Changes to this value on the server will be used for future badge-increment push notifications. * **`channelUris`**: The Microsoft-generated push URIs for Windows devices _(readonly)_. * **`appIdentifier`**: A unique identifier for this installation's client application. This parameter is not supported in Android _(readonly)_. diff --git a/_includes/android/queries.md b/_includes/android/queries.md index a023d28a..02aadcf7 100644 --- a/_includes/android/queries.md +++ b/_includes/android/queries.md @@ -246,7 +246,7 @@ List results = query.find(); ``` -For Case or Diacritic Sensitive search, please use the [REST API](http://docs.parseplatform.org/rest/guide/#queries-on-string-values). +For Case or Diacritic Sensitive search, please use the [REST API](https://docs.parseplatform.org/rest/guide/#queries-on-string-values). ## Relational Queries diff --git a/_includes/android/roles.md b/_includes/android/roles.md index 8ff441d2..0efd2cf5 100644 --- a/_includes/android/roles.md +++ b/_includes/android/roles.md @@ -1,6 +1,6 @@ # Roles -As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](http://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. +As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](https://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. For example, in your application with curated content, you may have a number of users that are considered "Moderators" and can modify and delete content created by other users. You may also have a set of users that are "Administrators" and are allowed all of the same privileges as Moderators, but can also modify the global settings for the application. By adding users to these roles, you can ensure that new users can be made moderators or administrators, without having to manually grant permission to every resource for each user. diff --git a/_includes/android/users.md b/_includes/android/users.md index f9cfbbec..0a3c3ce6 100644 --- a/_includes/android/users.md +++ b/_includes/android/users.md @@ -185,7 +185,7 @@ If you need to check if a `ParseUser` is authenticated, you can invoke the `isAu ## Security for Other Objects -The same security model that applies to the `ParseUser` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](http://en.wikipedia.org/wiki/Access_control_list), implemented by the `ParseACL` class. +The same security model that applies to the `ParseUser` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](https://en.wikipedia.org/wiki/Access_control_list), implemented by the `ParseACL` class. The simplest way to use a `ParseACL` is to specify that an object may only be read or written by a single user. To create such an object, there must first be a logged in `ParseUser`. Then, `new ParseACL(user)` generates a `ParseACL` that limits access to that user. An object's ACL is updated when the object is saved, like any other property. Thus, to create a private note that can only be accessed by the current user: diff --git a/_includes/cloudcode/cloud-code-advanced.md b/_includes/cloudcode/cloud-code-advanced.md index 2aefc128..db4b11f9 100644 --- a/_includes/cloudcode/cloud-code-advanced.md +++ b/_includes/cloudcode/cloud-code-advanced.md @@ -53,7 +53,7 @@ You can specify query parameters to append to the end of the url by setting `par ```javascript Parse.Cloud.httpRequest({ - url: 'http://www.google.com/search', + url: 'https://www.google.com/search', params: { q : 'Sean Plott' } @@ -68,7 +68,7 @@ or as a raw `String` like this: ```javascript Parse.Cloud.httpRequest({ - url: 'http://www.google.com/search', + url: 'https://www.google.com/search', params: 'q=Sean Plott' }).then(function(httpResponse) { console.log(httpResponse.text); @@ -83,7 +83,7 @@ You can send HTTP Headers by setting the `header` attribute of the options objec ```javascript Parse.Cloud.httpRequest({ - url: 'http://www.example.com/', + url: 'https://www.example.com/', headers: { 'Content-Type': 'application/json;charset=utf-8' } diff --git a/_includes/cloudcode/cloud-code.md b/_includes/cloudcode/cloud-code.md index abe4b96b..ef24d9c1 100644 --- a/_includes/cloudcode/cloud-code.md +++ b/_includes/cloudcode/cloud-code.md @@ -291,7 +291,7 @@ You can pass some data alongside the call if you want to customize the job execu We don't support at the moment job scheduling and highly recommend to use a 3rd party system for scheduling your jobs. -- On [AWS Elastic Beanstalk](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html#worker-periodictasks) +- On [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html#worker-periodictasks) - On [Google App Engine](https://cloud.google.com/appengine/docs/flexible/nodejs/scheduling-jobs-with-cron-yaml) - On [Heroku](https://devcenter.heroku.com/articles/scheduler#scheduling-jobs) diff --git a/_includes/common/data.md b/_includes/common/data.md index a705c3e0..f4745aa6 100644 --- a/_includes/common/data.md +++ b/_includes/common/data.md @@ -59,7 +59,7 @@ Normally, when objects are saved to Parse, they are automatically assigned a uni * Use a unique 10 character alphanumeric string as the value of your `objectId` fields. * Use a UTC timestamp in the ISO 8601 format when setting a value for the `createdAt` field or the `updatedAt` field. -In addition to the exposed fields, objects in the Parse User class can also have the `bcryptPassword` field set. The value of this field is a `String` that is the bcrypt hashed password + salt in the modular crypt format described in this [StackOverflow answer](http://stackoverflow.com/a/5882472/1351961). Most OpenSSL based bcrypt implementations should have built-in methods to produce these strings. +In addition to the exposed fields, objects in the Parse User class can also have the `bcryptPassword` field set. The value of this field is a `String` that is the bcrypt hashed password + salt in the modular crypt format described in this [StackOverflow answer](https://stackoverflow.com/a/5882472/1351961). Most OpenSSL based bcrypt implementations should have built-in methods to produce these strings. A file containing a `User` object could look like: diff --git a/_includes/common/security.md b/_includes/common/security.md index 250288f3..e70ad44b 100644 --- a/_includes/common/security.md +++ b/_includes/common/security.md @@ -490,6 +490,7 @@ There are some special classes in Parse that don't follow all of the same securi |Update|normal behavior [5]|ignores CLP, but not ACL [7]| |Delete|normal behavior [5]|master key only [7]| |Add Field|normal behavior|normal behavior| +{: .docs_table} 1. Logging in, or `/parse/login` in the REST API, does not respect the Get CLP on the user class. Login works just based on username and password, and cannot be disabled using CLPs. diff --git a/_includes/dotnet/getting-started.md b/_includes/dotnet/getting-started.md index 8cfa0ffe..4c4864b0 100644 --- a/_includes/dotnet/getting-started.md +++ b/_includes/dotnet/getting-started.md @@ -8,6 +8,6 @@ If you're familiar with web frameworks like ASP.NET MVC we've taken many of the This guide is for the .NET-based version of our SDK. If you are doing Windows 8 development using HTML and JavaScript, please see our JavaScript guide. -If you haven't installed the SDK yet, please [head over to the QuickStart guide]({{ page.quickstart }}) to get our SDK up and running in Visual Studio or Xamarin Studio. Note that our SDK requires Visual Studio 2012 or Xamarin Studio and targets .NET 4.5 applications, Windows Store apps, Windows Phone 8 apps, and [Xamarin.iOS 6.3+](http://docs.xamarin.com/releases/ios/xamarin.ios_6/xamarin.ios_6.3) or [Xamarin.Android 4.7+](http://docs.xamarin.com/releases/android/xamarin.android_4/xamarin.android_4.7) apps. You can also check out our [API Reference]({{ site.apis.dotnet }}) for more detailed information about our SDK. +If you haven't installed the SDK yet, please [head over to the QuickStart guide]({{ page.quickstart }}) to get our SDK up and running in Visual Studio or Xamarin Studio. Note that our SDK requires Visual Studio 2012 or Xamarin Studio and targets .NET 4.5 applications, Windows Store apps, Windows Phone 8 apps, and [Xamarin.iOS 6.3+](https://github.com/xamarin/release-notes-archive/blob/master/release-notes/ios/xamarin.ios_6/xamarin.ios_6.3/index.md) or [Xamarin.Android 4.7+](https://github.com/xamarin/release-notes-archive/blob/master/release-notes/android/xamarin.android_4/xamarin.android_4.7/index.md) apps. You can also check out our [API Reference]({{ site.apis.dotnet }}) for more detailed information about our SDK. -Parse's .NET SDK makes heavy use of the [Task-based Asynchronous Pattern](http://msdn.microsoft.com/en-us/library/hh873175.aspx) so that your apps remain responsive. You can use the [async and await](http://msdn.microsoft.com/en-us/library/hh191443.aspx) keywords in C# and Visual Basic to easily use these long-running tasks. +Parse's .NET SDK makes heavy use of the [Task-based Asynchronous Pattern](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap) so that your apps remain responsive. You can use the [async and await](https://docs.microsoft.com/en-us/previous-versions/hh191443(v=vs.140)) keywords in C# and Visual Basic to easily use these long-running tasks. diff --git a/_includes/dotnet/push-notifications.md b/_includes/dotnet/push-notifications.md index a23ba8e4..6b3febf6 100644 --- a/_includes/dotnet/push-notifications.md +++ b/_includes/dotnet/push-notifications.md @@ -42,7 +42,7 @@ While it is possible to modify a `ParseInstallation` just like you would a `Pars * **`channels`**: An `IEnumerable` of the channels to which a device is currently subscribed. In .NET, this field is accessible through the `Channels` property. * **`timeZone`**: The current time zone where the target device is located. This field is readonly and can be accessed via the `TimeZone` property. This value is synchronized every time an `Installation` object is saved from the device. -* **`localeIdentifier`**: The locale identifier of the device in the format [language code]-[COUNTRY CODE]. The language codes are two-letter lowercase ISO language codes (such as "en") as defined by [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1). The country codes are two-letter uppercase ISO country codes (such as "US") as defined by [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). This value is synchronized every time a `ParseInstallation` object is saved from the device _(readonly)_. +* **`localeIdentifier`**: The locale identifier of the device in the format [language code]-[COUNTRY CODE]. The language codes are two-letter lowercase ISO language codes (such as "en") as defined by [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1). The country codes are two-letter uppercase ISO country codes (such as "US") as defined by [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). This value is synchronized every time a `ParseInstallation` object is saved from the device _(readonly)_. * **`deviceType`**: The type of device, "ios", "android", "winrt", "winphone", or "dotnet". This field is readonly and can be accessed via the `DeviceType` property. * **`pushType`**: This field is reserved for directing Parse to the push delivery network to be used. If the device is registered to receive pushes via FCM, this field will be marked "gcm". If this device is not using FCM, it will be blank _(readonly)_. * **`installationId`**: Unique Id for the device used by Parse. This field is readonly and can be accessed via the `InstallationId` property. @@ -390,7 +390,7 @@ On Windows 8, a toast notification can pass a small payload to the launch handle virtual void OnLaunched(LaunchActivatedEventArgs args) { // 'args' contains arguments that are passed to the app // during its launch activation from a Toast. - // More on Toasts: http://msdn.microsoft.com/en-us/library/windows/apps/hh779727.aspx + // More on Toasts: https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh779727(v=win.10) ParseAnalytics.TrackAppOpenedAsync(args); } ``` diff --git a/_includes/dotnet/roles.md b/_includes/dotnet/roles.md index 523d012c..5c600935 100644 --- a/_includes/dotnet/roles.md +++ b/_includes/dotnet/roles.md @@ -1,6 +1,6 @@ # Roles -As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](http://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. +As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](https://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. For example, in your application with curated content, you may have a number of users that are considered "Moderators" and can modify and delete content created by other users. You may also have a set of users that are "Administrators" and are allowed all of the same privileges as Moderators, but can also modify the global settings for the application. By adding users to these roles, you can ensure that new users can be made moderators or administrators, without having to manually grant permission to every resource for each user. diff --git a/_includes/dotnet/users.md b/_includes/dotnet/users.md index 4e13e127..afd3e254 100644 --- a/_includes/dotnet/users.md +++ b/_includes/dotnet/users.md @@ -140,7 +140,7 @@ If you need to check if a `ParseUser` is authenticated, you can check the `IsAut ## Security For Other Objects -The same security model that applies to the `ParseUser` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](http://en.wikipedia.org/wiki/Access_control_list), implemented by the `ParseACL` class. +The same security model that applies to the `ParseUser` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](https://en.wikipedia.org/wiki/Access_control_list), implemented by the `ParseACL` class. The simplest way to use a `ParseACL` is to specify that an object may only be read or written by a single user. To create such an object, there must first be a logged in `ParseUser`. Then, the `ParseACL` constructor generates a `ParseACL` that limits access to that user. An object's ACL is updated when the object is saved, like any other property. Thus, to create a private note that can only be accessed by the current user: @@ -358,7 +358,7 @@ await ParseFacebookUtils.UnlinkAsync(user); ### Single Sign-on for Windows 8 -WinRT lets you implement single sign-on with Facebook using its `[WebAuthenticationBroker](http://msdn.microsoft.com/library/windows/apps/br227025)` API. This allows users to log into Facebook once and then share that login across all of their apps, so they don't have to re-enter their username and password for every app. +WinRT lets you implement single sign-on with Facebook using its `[WebAuthenticationBroker](https://docs.microsoft.com/en-us/uwp/api/Windows.Security.Authentication.Web.WebAuthenticationBroker?view=winrt-22621)` API. This allows users to log into Facebook once and then share that login across all of their apps, so they don't have to re-enter their username and password for every app. Parse supports single sign-on with Facebook using this mechanism. Adding it to your app requires just two steps: @@ -388,7 +388,7 @@ Parse supports single sign-on using this mechanism. To add support to your app: * You will need to locate your app's product ID. During development, you can find this in your app's WMAppManifest.xml. When you submit your app to the store for the first time, your app will be assigned a new product ID, which you'll need to add to your app as described below. Whenever you use your product ID while following this guide, you should remove any of the following characters: `'-'`, `'{'`, `'}'`. -* You will need to configure your WMAppManifest.xml file [as described here](http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx#BKMK_URIassociations) to have your app handle URIs with the following protocol: +* You will need to configure your WMAppManifest.xml file as described in [Auto-launching apps using file and URI associations](https://docs.microsoft.com/en-us/previous-versions/windows/apps/jj206987(v=vs.105)?redirectedfrom=MSDN#BKMK_URIassociations) to have your app handle URIs with the following protocol: ```cs - + @@ -51,13 +49,4 @@ {% endif %} - - - diff --git a/_includes/header.html b/_includes/header.html index bda6a4b5..7365ce5f 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -58,6 +58,9 @@ diff --git a/_includes/ios/getting-started.md b/_includes/ios/getting-started.md index 1536bbd6..014f23fd 100644 --- a/_includes/ios/getting-started.md +++ b/_includes/ios/getting-started.md @@ -81,4 +81,4 @@ import Parse [releases]: https://github.com/parse-community/Parse-SDK-iOS-OSX/releases -[docs]: http://docs.parseplatform.org/ios/guide +[docs]: https://docs.parseplatform.org/ios/guide diff --git a/_includes/ios/push-notifications.md b/_includes/ios/push-notifications.md index ac028faa..debefdd9 100644 --- a/_includes/ios/push-notifications.md +++ b/_includes/ios/push-notifications.md @@ -67,7 +67,7 @@ While it is possible to modify a `PFInstallation` just like you would a `PFObjec * **`appIdentifier`**: A unique identifier for this installation's client application. In iOS/OS X, this value is obtained from `kCFBundleIdentifierKey`. This value is synchronized every time a `PFInstallation` object is saved from the device _(readonly)_. * **`parseVersion`**: The version of the Parse SDK which this installation uses. This value is synchronized every time a `PFInstallation` object is saved from the device _(readonly)_. * **`timeZone`**: The current time zone where the target device is located. This value is synchronized every time a `PFInstallation` object is saved from the device _(readonly)_. -* **`localeIdentifier`**: The locale identifier of the device in the format [language code]-[COUNTRY CODE]. The language codes are two-letter lowercase ISO language codes (such as "en") as defined by [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1). The country codes are two-letter uppercase ISO country codes (such as "US") as defined by [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). This value is synchronized every time a `PFInstallation` object is saved from the device _(readonly)_. +* **`localeIdentifier`**: The locale identifier of the device in the format [language code]-[COUNTRY CODE]. The language codes are two-letter lowercase ISO language codes (such as "en") as defined by [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1). The country codes are two-letter uppercase ISO country codes (such as "US") as defined by [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). This value is synchronized every time a `PFInstallation` object is saved from the device _(readonly)_. * **`pushType`**: This field is reserved for directing Parse to the push delivery network to be used for Android devices. This parameter is not supported in iOS/OS X devices _(readonly)_. * **`channelUris`**: The Microsoft-generated push URIs for Windows devices _(readonly)_. diff --git a/_includes/ios/queries.md b/_includes/ios/queries.md index 8454ef44..f6474a9e 100644 --- a/_includes/ios/queries.md +++ b/_includes/ios/queries.md @@ -617,7 +617,7 @@ query.findObjectsInBackground { (objects: [PFObject]?, error: Error?) in ``` -For Case or Diacritic Sensitive search, please use the [REST API](http://docs.parseplatform.org/rest/guide/#queries-on-string-values). +For Case or Diacritic Sensitive search, please use the [REST API](https://docs.parseplatform.org/rest/guide/#queries-on-string-values). ## Relational Queries diff --git a/_includes/ios/roles.md b/_includes/ios/roles.md index 296a36a4..58945ebd 100644 --- a/_includes/ios/roles.md +++ b/_includes/ios/roles.md @@ -1,6 +1,6 @@ # Roles -As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](http://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. +As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](https://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. For example, in your application with curated content, you may have a number of users that are considered "Moderators" and can modify and delete content created by other users. You may also have a set of users that are "Administrators" and are allowed all of the same privileges as Moderators, but can also modify the global settings for the application. By adding users to these roles, you can ensure that new users can be made moderators or administrators, without having to manually grant permission to every resource for each user. diff --git a/_includes/ios/user-interface.md b/_includes/ios/user-interface.md index b85a4d75..94377e3e 100644 --- a/_includes/ios/user-interface.md +++ b/_includes/ios/user-interface.md @@ -219,7 +219,7 @@ class MyLogInViewController : PFLogInViewController { ``` -Developers interested in this kind of customization should take a look at the interface of [`PFLogInView`](http://parseplatform.org/Parse-SDK-iOS-OSX/api/Classes/PFLogInView.html), where all customizable properties are documented. +Developers interested in this kind of customization should take a look at the interface of [`PFLogInView`](https://docs.parseplatform.org/ios/guide/#pfloginviewcontroller), where all customizable properties are documented. ### Portrait and Landscape @@ -409,7 +409,7 @@ class MySignUpViewController : PFSignUpViewController { ``` -Developers interested in this kind of customization should take a look at the interface of [`PFSignUpView`](http://parseplatform.org/Parse-SDK-iOS-OSX/api/Classes/PFSignUpView.html), where all customizable properties are documented. +Developers interested in this kind of customization should take a look at the interface of [`PFSignUpView`](https://docs.parseplatform.org/ios/guide/#pfsignupviewcontroller). ### Portrait and Landscape @@ -557,7 +557,7 @@ This view shows a list of Todo items and also allows the user to pull-to-refresh Notice all the code that we're not writing. We don't need to handle loading the data into the table, wrangle index paths, or handle tricky pagination code. That's all handled by the `PFQueryTableViewController` automatically. -A good starting point to learn more is to look at the [API for the class](http://parseplatform.org/Parse-SDK-iOS-OSX/api/Classes/PFQueryTableViewController.html) and also the [template subclass file](https://gist.github.com/ba03c1a550f14f88f95d). We designed the class with customizability in mind, so it should accommodate many instances where you used to use `UITableViewController`. +A good starting point to learn more is to look at the [PFQueryTableViewController docs](https://docs.parseplatform.org/ios/guide/#pfquerytableviewcontroller) and also the [template subclass file](https://gist.github.com/ba03c1a550f14f88f95d). We designed the class with customizability in mind, so it should accommodate many instances where you used to use `UITableViewController`. ### Loading Remote Images in Cells diff --git a/_includes/ios/users.md b/_includes/ios/users.md index 47a0b97e..7091fe32 100644 --- a/_includes/ios/users.md +++ b/_includes/ios/users.md @@ -282,7 +282,7 @@ If you need to check if a `PFUser` is authenticated, you can invoke the `isAuthe ## Security For Other Objects -The same security model that applies to the `PFUser` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](http://en.wikipedia.org/wiki/Access_control_list), implemented by the `PFACL` class. +The same security model that applies to the `PFUser` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](https://en.wikipedia.org/wiki/Access_control_list), implemented by the `PFACL` class. The simplest way to use a `PFACL` is to specify that an object may only be read or written by a single user. To create such an object, there must first be a logged in `PFUser`. Then, the `ACLWithUser` method generates a `PFACL` that limits access to that user. An object's ACL is updated when the object is saved, like any other property. Thus, to create a private note that can only be accessed by the current user: diff --git a/_includes/js/getting-started.md b/_includes/js/getting-started.md index f99c9231..99de0035 100644 --- a/_includes/js/getting-started.md +++ b/_includes/js/getting-started.md @@ -56,6 +56,6 @@ Parse.initialize("YOUR_APP_ID", "YOUR_JAVASCRIPT_KEY", "YOUR_MASTERKEY"); Parse.serverURL = 'http://YOUR_PARSE_SERVER:1337/parse' ``` -Our JavaScript SDK is originally based on the popular [Backbone.js](http://backbonejs.org/) framework, but it provides flexible APIs that allow it to be paired with your favorite JS libraries. Our goal is to minimize configuration and let you quickly start building your JavaScript and HTML5 app on Parse. +Our JavaScript SDK is originally based on the popular [Backbone.js](https://backbonejs.org/) framework, but it provides flexible APIs that allow it to be paired with your favorite JS libraries. Our goal is to minimize configuration and let you quickly start building your JavaScript and HTML5 app on Parse. Our SDK supports Firefox 23+, Chrome 17+, Safari 5+, and IE 10. IE 9 is supported only for apps that are hosted with HTTPS. diff --git a/_includes/js/promises.md b/_includes/js/promises.md index d106f680..c62872c2 100644 --- a/_includes/js/promises.md +++ b/_includes/js/promises.md @@ -4,7 +4,7 @@ In addition to callbacks, every asynchronous method in the Parse JavaScript SDK ## Introduction to Promises -Promises represent the next great paradigm in JavaScript programming. But understanding why they are so great is no simple matter. At its core, a `Promise` represents the result of a task, which may or may not have completed. The only interface requirement of a `Promise` is having a function called `then`, which can be given callbacks to be called when the promise is fulfilled or has failed. This is outlined in the [CommonJS Promises/A proposal](http://wiki.commonjs.org/wiki/Promises/A). For example, consider saving a `Parse.Object`, which is an asynchronous operation. In the old callback paradigm, your code would look like this: +Promises represent the next great paradigm in JavaScript programming. But understanding why they are so great is no simple matter. At its core, a `Promise` represents the result of a task, which may or may not have completed. The only interface requirement of a `Promise` is having a function called `then`, which can be given callbacks to be called when the promise is fulfilled or has failed. This is outlined in the [CommonJS Promises/A proposal](https://wiki.commonjs.org/wiki/Promises/A). For example, consider saving a `Parse.Object`, which is an asynchronous operation. In the old callback paradigm, your code would look like this: ```javascript object.save({ key: value }, { diff --git a/_includes/js/queries.md b/_includes/js/queries.md index 0067adc3..a84d623b 100644 --- a/_includes/js/queries.md +++ b/_includes/js/queries.md @@ -259,7 +259,7 @@ query.find() }); ``` -For Case or Diacritic Sensitive search, please use the [REST API](http://docs.parseplatform.org/rest/guide/#queries-on-string-values). +For Case or Diacritic Sensitive search, please use the [REST API](https://docs.parseplatform.org/rest/guide/#queries-on-string-values). ## Relational Queries diff --git a/_includes/js/roles.md b/_includes/js/roles.md index e5c4e065..7c5f3613 100644 --- a/_includes/js/roles.md +++ b/_includes/js/roles.md @@ -1,6 +1,6 @@ # Roles -As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](http://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. +As your app grows in scope and user-base, you may find yourself needing more coarse-grained control over access to pieces of your data than user-linked ACLs can provide. To address this requirement, Parse supports a form of [Role-based Access Control](https://en.wikipedia.org/wiki/Role-based_access_control). Roles provide a logical way of grouping users with common access privileges to your Parse data. Roles are named objects that contain users and other roles. Any permission granted to a role is implicitly granted to its users as well as to the users of any roles that it contains. For example, in your application with curated content, you may have a number of users that are considered "Moderators" and can modify and delete content created by other users. You may also have a set of users that are "Administrators" and are allowed all of the same privileges as Moderators, but can also modify the global settings for the application. By adding users to these roles, you can ensure that new users can be made moderators or administrators, without having to manually grant permission to every resource for each user. diff --git a/_includes/js/users.md b/_includes/js/users.md index 53321262..57131bf2 100644 --- a/_includes/js/users.md +++ b/_includes/js/users.md @@ -163,7 +163,7 @@ You can check if this feature is enabled with the function `Parse.isEncryptedUse ## Security For Other Objects -The same security model that applies to the `Parse.User` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](http://en.wikipedia.org/wiki/Access_control_list), implemented by the `Parse.ACL` class. +The same security model that applies to the `Parse.User` can be applied to other objects. For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. To support this type of security, each object has an [access control list](https://en.wikipedia.org/wiki/Access_control_list), implemented by the `Parse.ACL` class. The simplest way to use a `Parse.ACL` is to specify that an object may only be read or written by a single user. This is done by initializing a Parse.ACL with a `Parse.User`: `new Parse.ACL(user)` generates a `Parse.ACL` that limits access to that user. An object's ACL is updated when the object is saved, like any other property. Thus, to create a private note that can only be accessed by the current user: @@ -279,7 +279,7 @@ To start using Facebook with Parse, you need to: 1. [Create a Facebook Developer account](https://developers.facebook.com/). 2. [Create an app](https://developers.facebook.com/apps). 3. In your app Dashboard, add a product -> Facebook Login. -4. [Add appIds to Parse Server auth configuration](http://docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication) or pass `facebookAppIds` into configuration +4. [Add appIds to Parse Server auth configuration](https://docs.parseplatform.org/parse-server/guide/#oauth-and-3rd-party-authentication) or pass `facebookAppIds` into configuration ```html