Eclipse - How to deny files build/compilation? - build

I started using Eclipse with TFS (Team Foundation Server) to control file versions, but now I need to control the build/compile access. The idea is similar to the version control system, but it is now related to the project and machines.
Is there a way to control/deny the compilation of specific files with a plugin or not inside Eclipse?

It seems what you want is to manage users to access the project. You can add the users to the Readers group or set permission for a single user.
Check this article for more details:
https://msdn.microsoft.com/en-us/library/ms252477.aspx

If you are asking about permissions to repositories, VisualSVN Server fully supports path-based authorization and you can manage it through VisualSVN Server Manager console, Windows PowerShell and Repository Configurator tool.
Read the article KB33 | Understanding VisualSVN Server authorization to learn more about the permissions.
BTW, I second #alroc's comment:
Why would one use a version control system to control what source
files are compiled in the build process?
It seems to me that you are planning to use some awkward approach to control your builds. How does built relate to your version-control system? You should tell the build machine which projects and how to build them. Version control system can only control the authorization part in this case.

Related

Django/React Dev Servers Choices

I'm new to React. I'm building a project that uses Django to make a REST API and React to access the api. I have my backend running on http://localhost:8000/ & my frontend running on http://localhost:3000/. My frontend makes api requests to http://localhost:8000/api/v1/.
I found this tutorial to get my frontend running on the index of http://localhost:8000/ for dev purposes. I would still have to have my React dev server and my Django dev server, but I also had to run 'npm run eject'.
Is there any advantage to either of these setups? I don't know too much about 'npm run eject' but since I can't go back from it, is it better off to wait on ejecting until I'm closer to deployment?
edit* - one advantage I see with the latter method, is I can set my permissions as so
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
#'rest_framework.permissions.AllowAny',
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
]
}
instead of having to allow any. This would really only become an issue for deployment purposes too though.
this is what I found on documentation-link for npm run eject
this is a one-way operation. Once you eject, you can’t go back!
If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
It moves create-react-app’s configuration files and dev/build/test scripts into you app directory.
If you don’t have a need to modify the config or scripts you don’t need to eject. Doing so will prevent you from being able to update to new versions of create-react-app.
create-react-app gives you a fast and easy way to get up and running. It encapsulates the project setup and gives you tools to create production ready apps.
When you run npm eject it gives you access to all config files. This can be useful if you want to edit the webpack setup
so it has it's pros and cons choose what's best for you.

Creating a manifest file inside of /Library/Google/Chrome/NativeMessagingHosts requires super user permissions

This is on Mac 10.8
I have written Google Chrome Extension and a Native Messaging executable which communicates with the Chrome Extension using Native Messaging. All works fine with my Proof of Concept as part of development.
Issue is that now I want to get it deployed.
I have my in house installer which by which I need to create a com.my_company.my_product.json manifest file inside of this /Library/Google/Chrome/NativeMessagingHosts directory which cannot be accessed unless I ask for the password of the admin user.
I am doing this port as part of migration of NPPlugin to Chrome Extension Native messaging communication which will replace the NPPlugin. NPPlugin can be accessed from both /Library as well as ~/Library which does not require sudo permissions.
Why does the manifest file need to be at root /Library level ad not user ~/library level? If so how can we get this installed on a Mac without bothering the user with admin password which the user will obviously be less likely to share.
If anyone has a solution, the Native Executable is a C++ program that can use Mac API calls.
Your understanding is correct. The Chromium team is investigating user directories as an additional option. Ensuring continuing security is the primary concern. I'll update this answer when there's more to report. (Update 6/1/2014: see Rob W.'s comment to this answer)

Two RCP Applications in one installation

I recenty developed an Eclipse RCP application based on an existing RCP application. It´s basically used as a url protocol handler which reuses authentication and some services. I´m trying to avoid a second installation and look for a way to integrate the new RCP application into the installation of the existing RCP - is there a way to achieve this?
I´m (still) using Eclipse 3.8 and build with tycho.
Assuming that you have multiple applications within your product, you can launch the desired one using the
-application id
runtime argument.
In our application, which integrates multiple Eclipse RCP applications, we have a custom target platform, which bundles all other application plugins, so everything is shipped together. Also, all artifacts, provided by other applications can be retrieved from the maven repository, so that necessary services may be added as a dependencies to, for instance, server side projects. Hope that helps.

C++ Show OSX Permission Dialog

I am writing an application on OSX by using Qt C++ that needs root privilege.
I believe I can get these needed privilege by displaying a dialog box prompting user name and password, something like this in XAMPP:
How this can be done? Am I have to build the form manually then use setuid, or is there already built in function on the SDK?
Originally, Apple provided a function 'AuthorizationExecuteWithPrivileges' that allowed an application to launch another with root privileges. This has since been deprecated for security reasons.
The dialog here is a bit misleading. Apple provides authorization services that launches the dialog under various different situations, but usually from an application having called the function AuthorizationCopyRights, after having setup rules in an authorization database (the file at /etc/authorization) and having created the Authorization reference with AuthorizationCreate.
Security on OSX is split between a security daemon, a security agent and applications. An application can restrict features using this system, or request authorisation for the user to enter credentials so it can launch a privileged application, which is what you need to do.
It's important to note that the dialog has not been presented by the application, but by the Security Agent, which is solely responsible for the security GUI. The daemon actually processes the authorization.
Apple's method for elevation is to have all applications run with Standard User rights and should a privileged task be required, then this must be factored out into a separate application which is registered to run with launchd and given the elevated privileges. The example Apple provides is SMJobBless.
While the calling code of the example is written in Objective-C, the important functions are just C functions in the SMJobBlessAppController.m file, most notably AuthorizationCreate to create an authorisation reference and the code in the Objective-C function blessHelperWithLabel:error: at the bottom of the file.
Begin with this help document on SMJobBless, which details the process.
Finally, if you're using Qt, you'll need to include Apple's Security framework for the required function calls. To do that, just add the following to your .pro file: -
QMAKE_LFLAGS += -F /System/Library/Frameworks/Security.framework/
LIBS += -framework Security

Deploying a Firebreath plugin on a webpage without manual installation

Recently I have been experimenting with Firebreath and developed a plugin in order to showcase my c++ projects on my portfolio website. I would like to make it easy for users to look at the projects without downloading files if they are new on my website.
The only issue I have at this point is that when users visit my page, they will receive a message indicating the plugin is missing. I would like to have an option for the users to automatically install my plugin without having to manually download and run it.
The plugin is mainly targetted at Windows users, since the applications are as well. I intend to support Google Chrome, Firefox, Internet Explorer. Currently I am using a MSI installer to install the plugin.
I have found a question similar to this, but I still needed to save the MSI installer and run it.
My question is: What would be the best way to implement this?
There isn't any way to "automatically" do what you want to do. The closest that I have heard of would be to use a java applet that would download and install the plugin for them. This can be pretty reliable on Mac but far less reliable on windows (for a number of reasons, among which the fact that many windows users don't have java installed and that Chrome blocks java applets by default without intervention by the user).
Other options include:
Creating a CAB file installer (only works on IE)
Creating a XPI firefox extension that packages the plugin (requires restarting the browser, only works on firefox)
Creating a CRX chrome extension that packages the plugin (only works on Chrome)
Microsoft ClickOnce used to work pretty well for one click installs of MSI files from a web page, but recently I think it doesn't work on many (if any) browsers; haven't seen it used in awhile, anyway.
There is no "automatic" way to install plugins; that would be considered a severe security issue. This is probably the #1 reason that plugins are as uncommon as they are.
do what adobe does,
create a tiny activeX application downloader, sign the activeX from with cheap SSL
when a user, enters your site, he will automatically be downloading this tiny ActiveX, after installation complete, inside the tiny ActiveX, have some type of batch script to download the EXE from remote server and silently install it.
adobe does this, on every reboot in boot.ini or startups
very easy