Access to go
Docs To Go™ Free Office Suite
Penjabaran dari Docs To Go™ Free Office Suite
Work from anywhere: View, edit, and create Microsoft® Office files & view Adobe PDF® files on your Android smartphone and/or tablet with the original & #1 selling mobile Office suite of all time.
Docs To Go 4.0 contains best-in-class document viewing & editing at no charge. Options for connecting to multiple cloud storage accounts, desktop file sync, and opening password-protected files are available via in-app purchase.
THE DATAVIZ® ADVANTAGE
• Founded in 1984, DataViz is an industry leader in developing mobile Office & productivity solutions for Android, iOS, and more.
• Documents To Go, now in its 15th year, is currently preloaded on millions of devices around the world and has been downloaded over 40 million times on Android.
• InTact Technology™ retains original document formatting of edited files.
• No account sign-up necessary to get started in creating files and the freedom to save files where you choose!
• All your files in one app — no need to download separate components or cloud service/drive apps.
• Multiple file save & synchronization options – Save & sync directly to your Android device, desktop & laptop via USB*, and to various cloud services*.
• Technical support is available via email & via our robust knowledgebase at DataViz.com.
NEW in v4.0:
• Editing is now free for new users and existing Docs To Go ‘Viewer Edition’ users.
• App redesign – Modernized user interface includes a refined file explorer and easy access to extensive editing & formatting options without sacrificing valuable screen real estate.
• Cloud services support* – View, edit, save, and sync with multiple cloud services: Dropbox, Box, OneDrive, and Google Drive.
• Android v. 9 (Pie) OS compatible.
OVERALL SUITE FEATURES:
• Includes both Android smartphone & tablet versions in one download.
• View, edit, and create MS Office files (97-2016).
• View PDF files.
• Save changes directly to your device, memory card, multiple cloud services*, or to your Windows computer with our desktop/laptop application*.
• Send & receive supported email attachments using Gmail or your favorite email app.
• File sorting manager (sort your file list by Name, Modified, Size, etc.).
• Localized in English, French, German, Spanish, Italian, Portuguese, Brazilian Portuguese, Russian, Turkish, Japanese, Chinese, Korean, Arabic, Polish, Czech.
WORD TO GO FEATURES:
• Format font type, size, color, bold, italics, underline, and highlight text
• High fidelity viewing for embedded graphics, tables, bookmarks, comments, footnotes/endnotes, text boxes, table of contents, and hyperlinks
• Change paragraph alignment
• Edit bullets & numbering
• Find & replace
• View Tracked Changes
• Word count
• Open password protected Word 97-2016 files*
SHEET TO GO FEATURES:
• Freeze panes
• Extensive cell, number, and sheet formatting options
• 111 functions supported
• Insert, delete, resize, hide/unhide rows & columns
• Rename, insert, and delete worksheets
• Find/find next
• View charts
• Open password protected Excel 97-2016 files*
SLIDESHOW TO GO FEATURES:
• Effortlessly “flick” through slides
• Rehearse timing
• View speaker notes
• Sort and edit slides, including promote/demote bullets
• Open password protected PowerPoint 97-2016 files*
PDF TO GO FEATURES:
• High-fidelity viewing of PDF files with page view, word wrap, auto-rotate, bookmarks, search, and select/copy text options
• Pinch-to-zoom to desired PDF page size/width
• Open password-protected PDFs*
*Select features only available via in-app purchase in Docs To Go, such as file access via cloud services, desktop sync (Windows only), and password-protected file support.
Do you prefer video tutorials? Check out the Symfony Security screencast series.
Symfony’s security system is incredibly powerful, but it can also be confusing to set up. Don’t worry! In this article, you’ll learn how to set up your app’s security system step-by-step:
A few other important topics are discussed after.
In applications using Symfony Flex , run this command to install the security feature before using it:
2a) Create your User Class¶
No matter how you will authenticate (e.g. login form or API tokens) or where your user data will be stored (database, single sign-on), the next step is always the same: create a «User» class. The easiest way is to use the MakerBundle.
Let’s assume that you want to store your user data in the database with Doctrine:
That’s it! The command asks several questions so that it can generate exactly what you need. The most important is the User.php file itself. The only rule about your User class is that it must implement UserInterface . Feel free to add any other fields or logic you need. If your User class is an entity (like in this example), you can use the make:entity command to add more fields. Also, make sure to make and run a migration for the new entity:
2b) The «User Provider»¶
In addition to your User class, you also need a «User provider»: a class that helps with a few things, like reloading the User data from the session and some optional features, like remember me and impersonation.
Fortunately, the make:user command already configured one for you in your security.yaml file under the providers key.
If your User class is an entity, you don’t need to do anything else. But if your class is not an entity, then make:user will also have generated a UserProvider class that you need to finish. Learn more about user providers here: User Providers.
2c) Encoding Passwords¶
Not all applications have «users» that need passwords. If your users have passwords, you can control how those passwords are encoded in security.yaml . The make:user command will pre-configure this for you:
Now that Symfony knows how you want to encode the passwords, you can use the UserPasswordEncoderInterface service to do this before saving your users to the database.
For example, by using DoctrineFixturesBundle , you can create dummy database users:
Use this service to encode the passwords:
You can manually encode a password by running:
3a) Authentication & Firewalls¶
The security system is configured in config/packages/security.yaml . The most important section is firewalls :
A «firewall» is your authentication system: the configuration below it defines how your users will be able to authenticate (e.g. login form, API token, etc).
Only one firewall is active on each request: Symfony uses the pattern key to find the first match (you can also match by host or other things). The dev firewall is really a fake firewall: it just makes sure that you don’t accidentally block Symfony’s dev tools — which live under URLs like /_profiler and /_wdt .
All real URLs are handled by the main firewall (no pattern key means it matches all URLs). But this does not mean that every URL requires authentication. Nope, thanks to the anonymous key, this firewall is accessible anonymously.
In fact, if you go to the homepage right now, you will have access and you’ll see that you’re «authenticated» as anon. . Don’t be fooled by the «Yes» next to Authenticated. The firewall verified that it does not know your identity, and so, you are anonymous:
You’ll learn later how to deny access to certain URLs or controllers.
If you do not see the toolbar, install the profiler with:
Now that we understand our firewall, the next step is to create a way for your users to authenticate!
3b) Authenticating your Users¶
Authentication in Symfony can feel a bit «magic» at first. That’s because, instead of building a route & controller to handle login, you’ll activate an authentication provider: some code that runs automatically before your controller is called.
Symfony has several built-in authentication providers. If your use-case matches one of these exactly, great! But, in most cases — including a login form — we recommend building a Guard Authenticator: a class that allows you to control every part of the authentication process (see the next section).
If your application logs users in via a third-party service such as Google, Facebook or Twitter (social login), check out the HWIOAuthBundle community bundle.
A Guard authenticator is a class that gives you complete control over your authentication process. There are many different ways to build an authenticator; here are a few common use-cases:
4) Denying Access, Roles and other Authorization¶
Users can now log in to your app using your login form. Great! Now, you need to learn how to deny access and work with the User object. This is called authorization, and its job is to decide if a user can access some resource (a URL, a model object, a method call, . ).
The process of authorization has two different sides:
- The user receives a specific set of roles when logging in (e.g. ROLE_ADMIN ).
- You add code so that a resource (e.g. URL, controller) requires a specific «attribute» (most commonly a role like ROLE_ADMIN ) in order to be accessed.
When a user logs in, Symfony calls the getRoles() method on your User object to determine which roles this user has. In the User class that we generated earlier, the roles are an array that’s stored in the database, and every user is always given at least one role: ROLE_USER :
This is a nice default, but you can do whatever you want to determine which roles a user should have. Here are a few guidelines:
- Every role must start with ROLE_ (otherwise, things won’t work as expected)
- Other than the above rule, a role is just a string and you can invent what you need (e.g. ROLE_PRODUCT_ADMIN ).
You’ll use these roles next to grant access to specific sections of your site. You can also use a role hierarchy where having some roles automatically give you other roles.
Add Code to Deny Access¶
There are two ways to deny access to something:
Securing URL patterns (access_control)¶
The most basic way to secure part of your app is to secure an entire URL pattern in security.yaml . For example, to require ROLE_ADMIN for all URLs that start with /admin , you can:
You can define as many URL patterns as you need — each is a regular expression. BUT, only one will be matched per request: Symfony starts at the top of the list and stops when it finds the first match:
Prepending the path with ^ means that only URLs beginning with the pattern are matched. For example, a path of /admin (without the ^ ) would match /admin/foo but would also match URLs like /foo/admin .
Each access_control can also match on IP address, hostname and HTTP methods. It can also be used to redirect a user to the https version of a URL pattern. See How Does the Security access_control Work?.
Securing Controllers and other Code¶
You can deny access from inside a controller:
That’s it! If access is not granted, a special AccessDeniedException is thrown and no more code in your controller is executed. Then, one of two things will happen:
- If the user isn’t logged in yet, they will be asked to log in (e.g. redirected to the login page).
- If the user is logged in, but does not have the ROLE_ADMIN role, they’ll be shown the 403 access denied page (which you can customize ).
Thanks to the SensioFrameworkExtraBundle, you can also secure your controller using annotations:
Access Control in Templates¶
If you want to check if the current user has a certain role, you can use the built-in is_granted() helper function in any Twig template:
Securing other Services¶
Checking to see if a User is Logged In (IS_AUTHENTICATED_FULLY)¶
If you only want to check if a user is logged in (you don’t care about roles), you have two options. First, if you’ve given every user ROLE_USER , you can just check for that role. Otherwise, you can use a special «attribute» in place of a role:
You can use IS_AUTHENTICATED_FULLY anywhere roles are used: like access_control or in Twig.
IS_AUTHENTICATED_FULLY isn’t a role, but it kind of acts like one, and every user that has logged in will have this. Actually, there are 3 special attributes like this:
- IS_AUTHENTICATED_REMEMBERED : All logged in users have this, even if they are logged in because of a «remember me cookie». Even if you don’t use the remember me functionality, you can use this to check if the user is logged in.
- IS_AUTHENTICATED_FULLY : This is similar to IS_AUTHENTICATED_REMEMBERED , but stronger. Users who are logged in only because of a «remember me cookie» will have IS_AUTHENTICATED_REMEMBERED but will not have IS_AUTHENTICATED_FULLY .
- IS_AUTHENTICATED_ANONYMOUSLY : All users (even anonymous ones) have this — this is useful when whitelisting URLs to guarantee access — some details are in How Does the Security access_control Work?.
Access Control Lists (ACLs): Securing individual Database Objects¶
Imagine you are designing a blog where users can comment on your posts. You also want a user to be able to edit their own comments, but not those of other users. Also, as the admin user, you want to be able to edit all comments.
Voters allow you to write whatever business logic you need (e.g. the user can edit this post because they are the creator) to determine access. That’s why voters are officially recommended by Symfony to create ACL-like security systems.
If you still prefer to use traditional ACLs, refer to the Symfony ACL bundle.
5a) Fetching the User Object¶
After authentication, the User object of the current user can be accessed via the getUser() shortcut:
Enterprise Application Access
Application Access Redefined: Secure, Simple, Fast
Enterprise Application Access is a unique cloud architecture that closes all inbound firewall ports, while ensuring that only authorized users and devices have access to the internal applications they need — not the entire network. No one can access applications directly because they are hidden from the Internet and public exposure.
Enterprise Application Access integrates data path protection, single sign-on, identity access, application security, and management visibility and control into one service. And device posture capabilities allow security and threat intelligence signals to enhance contextual access to corporate applications.
It can be deployed in minutes through a unified portal with a single point of control, in any network environment, and at a fraction of the cost of traditional solutions. The result is a secure-access delivery model that enables a zero CapEx, low OpEx model for critical workloads deployed in any environment.
Forrester Total Economic Impact Report | Enterprise Application Access
Deliver Access to All Internal Applications
Provide seamless access for all enterprise applications — regardless of origin — delivered by vendors such as Atlassian, Microsoft, SAP, and Oracle. Or, integrate with an existing single sign-on (SSO) solution like Okta.
Multi-Factor Authentication (MFA/2FA)
Enable an additional layer of security by authenticating users with MFA across email, SMS, or TOTP — or integrate with an existing 2FA provider like Duo Security.
All access is encrypted using AES 256 over TLS 1.2, ensuring that no data is exposed to prying eyes on the network.
Unified Auditing and Reporting Capabilities
Capture all users’ IP addresses, usernames, and actions taken, as well as geolocation for easy compliance reporting.
Simple User Management Portal
Easily enable access to applications — whether deployed in private clouds, e.g., VMware or OpenStack; public clouds, e.g., Amazon Web Services, Microsoft Azure, Google Compute Engine, or IBM Cloud (Softlayer); or on-premises — in minutes. No additional hardware or software required.
Full-Featured, Server Load Balancing Capabilities
Balance traffic load across a group of servers. Configure to monitor the health of each application server and apply a variety of load balancing policies.
How Does Enterprise Application Access Work?
An Enterprise Application Access connector connects to your application server, then dials out to the Enterprise Application Access service on TCP port 443, commonly open for outbound communication on most companies’ firewalls. No additional hardware or software is required.
The service is architected based on three primary components:
- Data Edge: Provides the data plane between the user and the application, as well as data security, application performance, and optimization components.
- Management Edge: Provides management, logging, reporting, and configuration capabilities. The management and data edges are based on a secure, multi-tenant architecture. In addition to the multi-tenant data cloud, you have the option to select a dedicated single-tenant data cloud that can be configured to only process a single user’s traffic.
- Enterprise Connectors: Users connect to the Enterprise Application Access single sign-on service through a URL entered into their browsers. They simply provide their credentials to gain access to applications. Enterprise Application Access can also integrate with existing SSO products. Akamai’s solution captures information such as user identity and contextual signals, as well as device posture, meaning device vulnerability and threat intelligence signals, to build out robust risk profiles that assist with secure access decision-making.
Enterprise Application Access works with all applications — legacy on-premises, IaaS, and SaaS.
Traditional VPNs are complex to manage and expensive to scale, and increase the risk of unauthorized access to data across the corporate network. Eliminate VPN and transition to an adaptive and identity-aware security model to safeguard access and reduce the enterprise attack surface.
Redefine Application Access to Simplify Mergers and Acquisitions
Efficient integration and swift return on investment (ROI) are imperative on the heels of an acquisition or merger. IT must simplify enterprise application access, reducing complexity and enabling productivity — positioning the business for M&A success.
Provide Simple, Safe Contractor Access to Internal Applications
Increasingly, companies provide third parties — such as contractors, suppliers, and partners — access to internal applications that sit behind the firewall. A new model is needed to secure access for this distinct user group that resides outside of the enterprise’s traditional zone of control.
Deliver Fast and Secure Enterprise Applications
Modern enterprise users and applications are distributed. But access models haven’t kept up — backhauling traffic to the corporate network degrades application performance and user experience, drives up overhead and associated costs, and increases risk. An updated application access and security strategy is critical.
Enable Single Sign-On Across All Application Types
A seamless sign-on experience across on-premises, IaaS, and SaaS applications is vital given the growing and increasingly distributed population of corporate applications. Unified access improves an enterprise’s security posture, reduces IT costs, frees up IT resources, and improves user productivity.
Secure Access to Enterprise Applications in the Cloud
Enterprise applications have transitioned to the cloud. But there are risks as workloads move outside the traditional sphere of control. How can IT provide access without exposing the applications to the dangers of the public Internet? An evolved access model is needed.