Friday, March 30, 2012

Add Ldap user from php

$AD_server = "ldap://192.168.0.100";
$dn = "uid=netbeans1,ou=people,dc=example,dc=com";
$ds = ldap_connect($AD_server);
if ($ds) {
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); // IMPORTANT
    $result = ldap_bind($ds, "cn=admin,dc=example,dc=com", "password"); //BIND
    $ldaprecord['objectclass'][0] = "inetOrgPerson";
    $ldaprecord['objectclass'][1] = "posixAccount";
    $ldaprecord['objectclass'][2] = "shadowAccount";
    $ldaprecord['cn'] = 'netbeans';
    $ldaprecord['givenName'] = 'netbeans';
    $ldaprecord['sn'] = 'netbeans';
    $ldaprecord['mail'] = 'emai@gmail.com';
    $ldaprecord['mobile'] = '+91 1234567890';
    $ldaprecord['uid'] = 'netbeans';
    $ldaprecord['displayName'] = 'netbeans';
    $ldaprecord['uidNumber'] = '1000';
    $ldaprecord['gidNumber'] = '10000';
    $ldaprecord['userPassword'] = 'netbeans';
    $ldaprecord['gecos'] = 'netbeans';
    $ldaprecord['loginShell'] = '/bin/bash';
    $ldaprecord['homeDirectory'] = '/home/john';
    $ldaprecord['shadowExpire'] = '-1';
    $ldaprecord['shadowFlag'] = '0';
    $ldaprecord['shadowWarning'] = '7';
    $ldaprecord['shadowMin'] = '8';
    $ldaprecord['shadowMax'] = '999999';
    $ldaprecord['shadowLastChange'] = '10877';
    $ldaprecord['postalCode'] = '31000';
    $ldaprecord['l'] = 'Toulouse';
    $ldaprecord['o'] = 'Example';
    $ldaprecord['homePhone'] = '+33 (0)40 35963258';
    $ldaprecord['title'] = 'System Administrator';
    $ldaprecord['postalAddress'] = '';
    $ldaprecord['initials'] = 'JD';
       

    $r = ldap_add($ds, $dn, $ldaprecord);
  
} else {
    echo "cannot connect to LDAP server at $AD_server.";
}

Wednesday, March 21, 2012

Scaffold your ASP.NET MVC 3

Among many other improvements with ASP.NET MVC 3, we’re keen to make it easier to pick up and start using productively if you’re entirely new to the framework, and to automate common development tasks if you’re experienced and already know what you’re doing.
So, I’ve been working with Scott Hanselman lately on an enhanced new scaffolding package called MvcScaffolding. The term “Scaffolding” is used by many software technologies to mean “quickly generating a basic outline of your software that you can then edit and customise”. The scaffolding package we’re creating for ASP.NET MVC is greatly beneficial in several scenarios:
  • If you’re learning ASP.NET MVC for the first time, because it gives you a fast way to get some useful, working code, that you can then edit and adapt according to your needs. It saves you from the trauma of looking at a blank page and having no idea where to start!
  • If you know ASP.NET MVC well and are now exploring some new add-on technology such as an object-relational mapper, a view engine, a testing library, etc., because the creator of that technology may have also created a scaffolding package for it.
  • If your work involves repeatedly creating similar classes or files of some sort, because you can create custom scaffolders that output test fixtures, deployment scripts, or whatever else you need. Everyone on your team can use your custom scaffolders, too.
Other features in MvcScaffolding include:
  • Support for C# and VB projects
  • Support for the Razor and ASPX view engines
  • Supports scaffolding into ASP.NET MVC areas and using custom view layouts/masters
  • You can easily customize the output by editing T4 templates
  • You can add entirely new scaffolders using custom PowerShell logic and custom T4 templates. These (and any custom parameters you’ve given them) automatically appear in the console tab-completion list.
  • You can get NuGet packages containing additional scaffolders for different technologies (e.g., there’s a proof-of-concept one for LINQ to SQL now) and mix and match them together
It’s currently at a beta level so it is expected to work :) but if you push it in funny ways you might get odd results. Please let me know if you discover issues – I’m sure there’ll be some – so we can tidy it up and make it more robust.

Installation

The short version is this: Install-Package MvcScaffolding. If you understood that, do it and skip ahead to “Scaffolding a CRUD interface”. If not, read on.
1. Install ASP.NET MVC 3, which includes the excellent NuGet Package Manager.
2. Create or open an ASP.NET MVC 3 web application. I’m calling mine ‘SoccerSite’.
3. Install the MvcScaffolding package. You can install it using the NuGet Package Manager Console, so it only takes a few seconds and you don’t have to download anything using your browser.  To do so,
  • Open the Package Manager Console window using Visual Studio’s View->Other Windows->Package Manager Console menu item.
  • Enter the following:
Install-Package MvcScaffolding
image
  • That’s it! Note: be sure you installed MvcScaffolding, not MvcScaffold. We’ll retire the old MvcScaffold package shortly.
In case you’re wondering, EFCodeFirst is the new super-elegant version of Entity Framework that persists plain .NET objects to a relational database without any configuration fuss, T4Scaffolding is the core scaffolding infrastructure (locates types in your project, finds scaffolders in other packages, renders templates, etc), and MvcScaffolding is a set of ASP.NET MVC-specific templates (for controllers and views) that bolts onto the T4Scaffolding core.

Scaffolding a CRUD interface

Let’s create a model for a soccer team. Add the following class to your Models folder, then compile your solution (Ctrl-Shift-B):
namespace SoccerSite.Models
{
    public class Team
    {
        public int TeamId { get; set; }
        [Required] public string Name { get; set; }
        public string City { get; set; }
        public DateTime Founded { get; set; }
    }
}
Next, we can create a complete Create-Read-Update-Delete (CRUD) UI for this model by issuing a single scaffolding command into the Package Manager Console:
Scaffold Controller Team
Note: You can use the TAB key to autocomplete many things in the Package Manager Console. In this case, you can autocomplete the words “Scaffold” and “Controller”, since the scaffolding package knows about them. It doesn’t know about “Team”, though – we may add completion on model type names in a future version.
image
As you can see, it’s gone ahead and created a controller, a database context (a tiny bit of Entity Framework code that represents a data store), and views for all the CRUD actions. You can run it right now (Shift-F5), and as long as you have SQL Server Express running on your machine, EFCodeFirst will automatically connect to it, create your database schema, and you’ve got a basic working application without writing a single line of procedural code.
Note that since the model was called “Team”, the controller is called “TeamController”, so to reach it you need to point your browser to http://…/team:
image
The database is initially empty.
image
Creating an item. Validation rules are applied automatically. Note that since “Founded” is a DateTime it can’t be null and hence is required. Change it to DateTime? (i.e., with the question mark to make it nullable) if you want it to be optional.
image
Listing items
image
Deleting an item

But what if I don’t have SQL Express installed?

If you don’t have SQL Express installed and running, you may have got the following error when your code tried to read or write some data:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Blah blah blah…
No problem! You can quickly switch to use the new SQL Server Compact – a lightweight, in-process database – without having to download or install anything manually. Simply add SQL Server Compact to your project by issuing the following command in the Package Manager Console:
Install-Package EFCodeFirst.SqlServerCompact
Ta da – no more external database required. Run your project again (Shift-F5) and this time it will create and connect to a file-based database (a .sdf file will appear in your ~/App_Data folder). The EFCodeFirst.SqlServerCompact package adds a file to your project called AppStart_SQLCEEntityFramework.cs, which configures the runtime to use SQL CE.
Of course you probably still want the proper version of SQL Server when you eventually deploy your application for public use, but for small applications or for learning, SQL CE is really handy.

Scaffolding a repository

If you check out the code right now, you’ll see that TeamController reads and writes the data in SoccerSiteContext directly. That’s fine in many simple scenarios, but if you want to decouple your controller logic from persistence logic a little (e.g., so that you can write clean unit tests for the controller), you may prefer to reach your data through an interface.
No problem! Let’s regenerate the controller with the –Repository flag:
Scaffold Controller Team –Repository -Force
Notice that we also need to say –Force, otherwise the scaffolder won’t overwrite the files you already have in your project. Now the scaffolder will produce an additional class, TeamRepository, and the following interface which TeamRepository implements:
public interface ITeamRepository
    {
        void Add(Team post);
        void Delete(int id);
        IEnumerable<team> GetAllTeams();
        Team GetById(int id);
        void Save();
    }
TeamController will now only read and write data using ITeamRepository. If you’re new to ASP.NET MVC it may not be obvious why this is desirable, but if you start trying to write unit tests or switch data access technologies, you’ll find this interface-based data access method to be much cleaner and more flexible.

There’s so much more

It’s not just about CRUD! You can use scaffolding to create any type of project item if you write a template for it. This blog post has covered only the absolute beginning of what you can do, so over the coming days I’ll write blog posts to cover:
  • Scaffolding specific individual items (e.g., views, repositories, etc) rather than whole controllers and related files
  • Getting additional scaffolder packages and controlling which ones are used by default. For example, there’s currently a proof-of-concept LINQ to SQL scaffolding package that you can install and set to act as the default type of repository/data context.
  • Customising the T4 templates that the scaffolders use to generate code
  • Creating entirely new custom scaffolders for new types of things (e.g., unit test fixtures)

Monday, March 19, 2012

open ldap commands

apt-get install ldap-account-manager ldap-auth-config ldapscripts slapd ldap-utils migrationtools.

1) Create a file with ldif extension (userinfo.ldif)

dn: uid=user,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: userid
sn: Doe
givenName: User
cn: User
displayName: John Doe
uidNumber: 1000
gidNumber: 10000
userPassword: user123
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: rupesh123@example.com
postalCode: 31000
l: Toulouse
o: Example
mobile: +91 1234567890
homePhone: +33 (0)40 35963258
title: System Administrator
postalAddress:
initials: JD

2) Add User to openLDAP.

sudo ldapadd -x -D cn=admin,dc=example,dc=com -W -f userinfo.ldif

3) Search User:

ldapsearch -xLLL -b "dc=example,dc=com"
a) Displays the whole data of all the user in "dc=example,dc=com".

ldapsearch -xLLL -b "dc=example,dc=com" uid=user
b) Displays comple info of User whose uid=use.




ldapsearch -xLLL -b "dc=example,dc=com" uid
c) Displays the dn of all the users in "dc=example,dc=com"

 4) If you make a mistake when entering your information you can execute the dialog again using:
sudo dpkg-reconfigure ldap-auth-config 
 
The results of the dialog can be seen in /etc/ldap.conf 
 
5) Change User Password:
 
sudo apt-get install ldapscripts

Next, edit the config file /etc/ldapscripts/ldapscripts.conf uncommenting and changing the following to match your environment:

SERVER=localhost
BINDDN='cn=admin,dc=example,dc=com'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd" SUFFIX='dc=example,dc=com'
GSUFFIX='ou=Groups'
USUFFIX='ou=People'
MSUFFIX='ou=Computers'
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000

Now, create the ldapscripts.passwd file to allow authenticated access to the directory:
sudo sh -c "echo -n 'secret' > /etc/ldapscripts/ldapscripts.passwd" sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd


Replace secret with the actual password for your LDAP admin user.

The ldapscripts are now ready to help manage your directory. The following are some examples of how to use the scripts.
  • Change a user's password:
    sudo ldapsetpasswd userid
    Changing password for user uid=userid,ou=People,dc=example,dc=com
    New Password: 
    New Password (verify): 
    
 

https://help.ubuntu.com/11.04/serverguide/C/openldap-server.html

Saturday, March 17, 2012

configure xdebug netbeans ubuntu linux



Developers frequently need to trace the execution of their code, and debug it, and Drupal/PHP is no exception.
There are several PHP debugging frameworks/APIs available, including DBG, Gubed, Zend, and xdebug. Each of those supports different IDEs (Integrated Development Environments).
This article focuses on xdebug, and how you can set it up on your development machine or server.
xdebug provides the ability for more than one person to have debug sessions concurrently on the same server, using the DBGp protocol. Not all IDE's available support this feature however.
IDEs that use DBGp at present are:
  • Vim with the xdebug plugin (command line, non-GUI).
  • ActiveState Komodo (multi-platform)
  • Quanta Plus (KDE on Linux)

Installation

To install xdebug on a debian/Ubuntu system enter the following commands from sudo bash or root shell:
First, install PHP and MySQL if you already do not have them. You may not need the gd library if you do not have image manipulation modules.
aptitude install apache2 php5 php5-gd mysql-server php5-mysql
Next, install PHP development, Apache development, and PEAR.
aptitude install apache2-dev php5-dev php-pear make
Lastly, install xdebug using PHP's pecl
pecl install xdebug-beta 
This last step will run for a while, compiling xdebug from source. It should not have any errors.

Configuration

After the last command completes, you will have an xdebug.so library. You now need to configure apache to use it.
To do this, edit your PHP configuration file /etc/php5/apache2/php.ini and add in it the following section just before the [Date] heading:
zend_extension=/usr/lib/php5/20051025/xdebug.so

[debug]
; Remote settings
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000

; General
xdebug.auto_trace=off
xdebug.collect_includes=on
xdebug.collect_params=off
xdebug.collect_return=off
xdebug.default_enable=on
xdebug.extended_info=1
xdebug.manual_url=http://www.php.net
xdebug.show_local_vars=0
xdebug.show_mem_delta=0
xdebug.max_nesting_level=100
;xdebug.idekey=

; Trace options
xdebug.trace_format=0
xdebug.trace_output_dir=/tmp
xdebug.trace_options=0
xdebug.trace_output_name=crc32

; Profiling
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name=crc32
If you are using this on a server that is separate from the machine that you run the IDE in, then change the host name in xdebug.remote_host from localhost to the name of your server.

http://netbeans.org/kb/docs/php/configure-php-environment-ubuntu.html

Thursday, March 15, 2012

uninstall ubuntu 11 from windows xp

A.) Use Disk Manager in Windows to delete the Ubuntu partitions.
B.) Boot off your Windows XP CD.
  1. Choose “Repair”
  2. When it asks for the installation number, I put in “1″, and it worked fine (you may want to test this first to be sure.)
  3. Enter Admin password.
  4. At the command prompt type “fixmbr”, then confirm. Windows will overwrite the dual boot info in the MBR that Ubuntu put there.
  5. Reboot!

Wednesday, March 14, 2012

ubuntu root password

Where is root?

Ubuntu developers made a conscientious decision to disable the administrative root account by default in all Ubuntu installations. This does not mean that the root account has been deleted or that it may not be accessed. It merely has been given a password which matches no possible encrypted value, therefore may not log in directly by itself.
Instead, users are encouraged to make use of a tool by the name of sudo to carry out system administrative duties. Sudo allows an authorized user to temporarily elevate their privileges using their own password instead of having to know the password belonging to the root account. This simple yet effective methodology provides accountability for all user actions, and gives the administrator granular control over which actions a user can perform with said privileges.
  • If for some reason you wish to enable the root account, simply give it a password:

    sudo passwd root
     
    Sudo will prompt you for your password, and then ask you to supply a new password for root as shown below:

    [sudo] password for username: (enter your own password)
    Enter new UNIX password: (enter a new password for root)
    Retype new UNIX password: (repeat new password for root)
    passwd: password updated successfully 
     
    *** For Ubuntu 12.04 LTS need to execute one more command to enable root user:
            : sudo sh -c 'echo "greeter-show-manual-login=true" >> /etc/lightdm/lightdm.conf'.

          Now Reboot you system in Users List you will have Login option select that enter root click
          enter then it will ask for password enter password and hit enter. Now you logged as a root user
          (Note: At a times UserName will not display as root. Open terminal and look for the username there
          it will be showing as root).
     
     
  • To disable the root account, use the following passwd syntax:

    sudo passwd -l root 
     
  • You should read more on Sudo by checking out it's man page:

    man sudo
    
By default, the initial user created by the Ubuntu installer is a member of the group "admin" which is added to the file /etc/sudoers as an authorized sudo user. If you wish to give any other account full root access through sudo, simply add them to the admin group.

Adding and Deleting Users

The process for managing local users and groups is straight forward and differs very little from most other GNU/Linux operating systems. Ubuntu and other Debian based distributions, encourage the use of the "adduser" package for account management.
  • To add a user account, use the following syntax, and follow the prompts to give the account a password and identifiable characteristics such as a full name, phone number, etc.
    sudo adduser username
    
  • To delete a user account and its primary group, use the following syntax:
    sudo deluser username
    
    Deleting an account does not remove their respective home folder. It is up to you whether or not you wish to delete the folder manually or keep it according to your desired retention policies.
    Remember, any user added later on with the same UID/GID as the previous owner will now have access to this folder if you have not taken the necessary precautions.
    You may want to change these UID/GID values to something more appropriate, such as the root account, and perhaps even relocate the folder to avoid future conflicts:
    sudo chown -R root:root /home/username/
    sudo mkdir /home/archived_users/
    sudo mv /home/username /home/archived_users/
    
  • To temporarily lock or unlock a user account, use the following syntax, respectively:
    sudo passwd -l username
    sudo passwd -u username
    
  • To add or delete a personalized group, use the following syntax, respectively:
    sudo addgroup groupname
    sudo delgroup groupname
    
  • To add a user to a group, use the following syntax:
    sudo adduser username groupname
    

Sunday, March 11, 2012

asp.net mvc links

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2364 (mvc4 features)
http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx (about razor)
http://www.asp.net/mvc/tutorials/mvc-music-store (sample)
http://weblogs.asp.net/imranbaloch/archive/2011/01/16/asp-net-mvc-3-new-features.aspx (features)
http://www.youtube.com/watch?v=wfuoLiwsLfw&feature=player_embedded (Nuget excellent Video,Package Manager Intro) .
http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx (aspnet mvc3 features SCOTTGU blog)