Advertisement
Guest User

Code Behind to manage AD users for a CRM system

a guest
Aug 1st, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.52 KB | None | 0 0
  1.       if (ActionTypePage == ActionType.Modificacion || ActionTypePage == ActionType.MyDataM)
  2.       {
  3.  
  4.                 var password = DataPersonales.GenerarPassword();
  5.                 var personalData= fillDataPersonales(password);
  6.                 var userPortal = fillUserPortal();
  7.  
  8.                 var isEmployer = userPortal.IsEmployerRoleAorRoleB();
  9.                 var existsInAD = ADOperations.ExistsUserInActiveDirectory(personalData.User);
  10.  
  11.                 if (userPortal.IsEnabled.Value && isEmployer)
  12.                 {
  13.                     // 1a) If RoleA, RoleB (employer) NOT exists in AD ==> Error
  14.                     // 1b) If RoleA, RoleB (employer) exists in AD ==> Enable user in CRM (if false, Request New CRM)
  15.                     if (!existsInAD)
  16.                     {
  17.                         var msg = String.Format("The employer {0:-10} no exists in ActiveDirectory", personalData.User);
  18.                         var log = String.Format("User: {0, -15} - Error: {1:-100}", personalData.User, msg);
  19.                         LoggerAD.Trace("[AdminDataUsers] - Update ERROR. ExistsUserInActiveDirectory. " + log);
  20.  
  21.                         ((NsiMaster)Master.Master.Master).ShowNotification(msg, CommunicationType.Error, true);
  22.                         return;
  23.                     }
  24.  
  25.                     // Enable in CRM (if false, Request New CRM)
  26.                     var okEnable = AdminManager.EnableUserEnCrm(personalData.User);
  27.                     if (!okEnable)
  28.                     {
  29.                         var msg = "Cannot enable user in CRM. Please, do new Request CRM";
  30.                         ((NsiMaster)Master.Master.Master).ShowNotification(msg, CommunicationType.Error, true);
  31.                         return;
  32.                     }
  33.  
  34.                 }
  35.  
  36.                 if (userPortal.IsEnabled.Value && !isEmployer)
  37.                 {
  38.                     // 2a) If NOT RoleA, RoleB (not employeer) NOT exists in AD ==> Create in AD and Enable user in CRM (if false, Request New CRM)
  39.                     if (!existsInAD)
  40.                     {
  41.                         var okToCreateInAD = (UserLogado.IsUserWithRoleMA() || UserLogado.IsEmployerRoleAorRoleB())
  42.                             && !userPortal.IsEmployerRoleAorRoleB();
  43.  
  44.                         var okAD = false;
  45.                         if (okToCreateInAD)
  46.                         {
  47.                             var msgStateAD= "";
  48.                             okAD = ADOperations.AddUserInActiveDirectory(personalData.User, personalData.Password,
  49.                                 personalData.Name, personalData.Surname + " " + personalData.Surname2
  50.                                 , personalData.FullName
  51.                                 , isEmployer, UserConsultado.UserSystemAire, UserConsultado.CustomValue
  52.                                 , personalData.Email, personalData.Telephone, personalData.Mobile
  53.                                 , out msgEstadoAD);
  54.  
  55.                             if (!okAD)
  56.                             {
  57.                                 var log = String.Format("User: {0, -15} - Error: {1:-100}", personalData.User, msgEstadoAD);
  58.                                 LoggerAD.Trace("[AdminDataUsers] - Update ERROR. AddUserInActiveDirectory. " + log);
  59.                             }
  60.  
  61.                             if (okAD)
  62.                             {
  63.                                 var log = String.Format("User: {0, -15} - Password: {1:-10}", personalData.User, PassManager.ShowPassword(personalData.Password));
  64.                                 LoggerAD.Trace("[AdminDataUsers] -  Update. AddUserInActiveDirectory. " + log);
  65.                             }
  66.                         }
  67.  
  68.                         // Enable in CRM (if false, Request New CRM)
  69.                         var okEnable = AdminManager.EnableUserEnCrm(personalData.User);
  70.                         if (!okEnable)
  71.                         {
  72.                              var msg = "Cannot enable user in CRM. Please, do new Request CRM";
  73.                             ((NsiMaster)Master.Master.Master).ShowNotification(msg, CommunicationType.Error, true);
  74.                             return;
  75.                         }
  76.                     }
  77.  
  78.                     // 2b) If NOT RoleA, RoleB (not employeer) exists in AD ==> Send Warning (Email) and Enable in CRM (if false, Request New CRM)
  79.                     if (existsInAD)
  80.                     {
  81.                         //  Warning (Email)
  82.                         AdminManager.SendEmailWarning(personalData.User);
  83.  
  84.                         // Enable in CRM (if false, Request New CRM)
  85.                         var okEnable = AdminManager.EnableUserInCrm(personalData.User);
  86.                         if (!okEnable)
  87.                         {
  88.                             var msg = "Cannot enable user in CRM. Please, do new Request CRM";
  89.                             ((NsiMaster)Master.Master.Master).ShowNotification(msg, CommunicationType.Error, true);
  90.                             return;
  91.                         }
  92.                     }
  93.  
  94.                 }
  95.  
  96.  
  97.                 // Disable
  98.                 // 1a) If RoleA, RoleB (employer) NOT exists in AD ==> Error
  99.                 // 1b) If RoleA, RoleB (employer) exists in AD ==> not Enable in CRM (Delete en CRM) and Delete License CRM
  100.  
  101.                 if (!userPortal.IsEnabled.Value && isEmployer)
  102.                 {
  103.                     if (!existsInAD)
  104.                     {
  105.                         var msg = String.Format("The employer {0:-10} not exists in ActiveDirectory", personalData.User);
  106.                         var log = String.Format("User: {0, -15} - Error: {1:-100}", personalData.User, msg);
  107.                         LoggerAD.Trace("[AdminDataUsers] - Update ERROR. ExistsUserInActiveDirectory. " + log);
  108.  
  109.                         ((NsiMaster)Master.Master.Master).ShowNotification(msg, CommunicationType.Error, true);
  110.                         return;
  111.                     }
  112.  
  113.                     // Not Enable en CRM (Delete in CRM)
  114.                     AdminManager.DisablesUserInCrm(personalData.User);
  115.  
  116.                     // Delete License CRM
  117.                     AdminManager.DeleteUserCrmActive(personalData.User);
  118.                 }
  119.  
  120.                 if (!userPortal.IsEnabled.Value && !isEmployer)
  121.                 {
  122.                     // 2a) If NOT RoleA, RoleB (not employeer) NOT exists in AD ==> Send Warning (Email) and Not Enable in CRM (Delete in CRM) - Delete License CRM
  123.                     if (!existsInAD)
  124.                     {
  125.                         // Send Warning (Email)
  126.                         AdminManager.SendEmailWarning(personalData.User);
  127.  
  128.                        // Not Enable en CRM (Delete in CRM)
  129.                        AdminManager.DisablesUserInCrm(personalData.User);
  130.  
  131.                        // Delete License CRM
  132.                        AdminManager.DeleteUserCrmActive(personalData.User);
  133.                     }
  134.  
  135.                     // 2b) If NOT RoleA, RoleB (not employeer) exists in AD ==> Delete in AD and Not Enable in CRM (Delete in CRM) - Delete License CRM
  136.                     if (!existsInAD)
  137.                     {
  138.                         // Delete in AD
  139.                         var res = ADOperations.DeleteUserInActiveDirectory(personalData.User);
  140.  
  141.                         // Not Enable en CRM (Delete in CRM)
  142.                         AdminManager.DisablesUserInCrm(personalData.User);
  143.  
  144.                         // Delete License CRM
  145.                         AdminManager.DeleteUserCrmActive(personalData.User);
  146.                     }
  147.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement