public string Delete(int id = 0) { //variables crm_Roles role = null; ActionResultModel model = new ActionResultModel(); int userRole = 0; try { //Check role has user role userRole = _userRoleService.ODataQueryable().Where(x => x.RoleID == id).Count(); if (userRole > 0) { model.IsSuccess = 0; model.Message = "This user group has users!"; return(JsonConvert.SerializeObject(model)); } role = _roleService.ODataQueryable().Where(x => x.ID.Equals(id)).FirstOrDefault(); //Check role exist if (role == null) { model.IsSuccess = 0; model.Message = "User group has not exist!"; return(JsonConvert.SerializeObject(model)); } _roleService.Delete(role); model.IsSuccess = _unitOfWork.SaveChanges(); model.Message = model.IsSuccess > 0 ? "Delete user group successfully!" : "Delete user group unsuccessfully!"; return(JsonConvert.SerializeObject(model)); } catch { model.IsSuccess = 0; model.Message = "Delete fail!"; return(JsonConvert.SerializeObject(model)); } }
public ActionResult Create(TenantModel tenantModel) { if (ModelState.IsValid) { var _tenantEntity = tenantModel.ToEntity(); _tenantEntity.Active = true; _tenantEntity.CreatedDate = DateTime.Now; _tenantEntity.CreatedBy = _userInfo.ID; _tenantEntity.ModifiedBy = _userInfo.ID; _tenantEntity.ModifiedDate = DateTime.Now; _tenantEntity.DbName = "MultiOrg_" + _tenantEntity.TenantNameAlias; try { if (_tenantService.CheckAlias(_tenantEntity.TenantNameAlias)) { // create directory folder tenant _pathFiles = "/tenants/" + tenantModel.TenantNameAlias; var _newPath = Server.MapPath(_pathFiles); if (!Directory.Exists(_newPath)) { Directory.CreateDirectory(_newPath); } // create file default var _fileDefault = "default.png"; var _sourceFile = Path.Combine(Server.MapPath(_tempFiles), _fileDefault); var _destinationFile = Path.Combine(Server.MapPath(_pathFiles), _fileDefault); System.IO.File.Copy(_sourceFile, _destinationFile); if (!string.IsNullOrEmpty(_logoModel.FileName)) { _tenantEntity.CompanyLogo = _pathFiles + "/" + _logoModel.FileName; //move a file from temps file to tenant folder _sourceFile = Path.Combine(Server.MapPath(_tempFiles), _logoModel.FileName); _destinationFile = Path.Combine(Server.MapPath(_pathFiles), _logoModel.FileName); if (System.IO.File.Exists(_destinationFile)) { System.IO.File.Delete(_destinationFile); } System.IO.File.Move(_sourceFile, _destinationFile); _logoModel = null; } else { _tenantEntity.CompanyLogo = _pathFiles + "/" + _fileDefault; } // insert new tenant _tenantService.Insert(_tenantEntity); _unitOfWork.SaveChanges(); // write log _helper.InsertLogActive(_logService, _unitOfWork, "Tenants", "Insert new tenant", 1, true); var result = new SqlQueryExcute().CreateDBByTenant(_tenantEntity.DbName, _tenantEntity.DbUsername, _tenantEntity.DbPassword); // add new user var _tenantId = _tenantService.GetTanentByAlias(_tenantEntity.TenantNameAlias).TenantId; if (_tenantId > 0) { try { var _newUser = new crm_Users(); _newUser.Username = tenantModel.Username ?? _tenantEntity.DbUsername; string encryptPassword = ""; string passwordSalt = ""; passwordSalt = EncryptProvider.GenerateSalt(); encryptPassword = EncryptProvider.EncryptPassword(tenantModel.Password, passwordSalt); _newUser.PasswordSalt = passwordSalt; _newUser.Password = encryptPassword; _newUser.TenantId = _tenantId; _newUser.CreatedDate = DateTime.Now; _newUser.Active = true; _newUser.Email = tenantModel.ContactEmail ?? _tenantEntity.Email; _newUser.DisplayName = tenantModel.ContactName ?? _tenantEntity.TenantName; _newUser.FullName = tenantModel.ContactName ?? _tenantEntity.TenantName; _newUser.FacebookURL = _tenantEntity.FacebookURL; _newUser.TwitterURL = _tenantEntity.TwitterURL; _newUser.GoogleplusURL = _tenantEntity.GoogleplusURL; _newUser.LinkedURL = _tenantEntity.LinkedURL; _newUser.Image = _tenantEntity.CompanyLogo; _newUser.Phone = tenantModel.ContactPhone; _newUser.Mobile = tenantModel.MobilePhone; _userService.Insert(_newUser); _unitOfWork.SaveChanges(); _helper.InsertLogActive(_logService, _unitOfWork, "Users", "Insert user tenant admin", 1, true); // add tenant admin role var _userId = _userService.GetUserByUsername(_newUser.Username).ID; if (_userId > 0) { try { // AssignedUserId var _ownTenantEntity = _tenantService.Find(_tenantId); _ownTenantEntity.AssignedUserId = _userId; _ownTenantEntity.ObjectState = ObjectState.Modified; _tenantService.Update(_ownTenantEntity); _unitOfWork.SaveChanges(); _helper.InsertLogActive(_logService, _unitOfWork, "Tenant", "Assigned user for tenant", 2, true); // create group role var _roleEntity = new crm_Roles(); //Console.WriteLine(((WeekDays)1).ToString()); // TenantAdmin = 512 _roleEntity.RoleName = UserGroupEnum.TenantAdmin.ToString(); _roleEntity.Active = true; _roleEntity.MaskPermission = (int)UserGroupEnum.TenantAdmin + 15; _roleEntity.TenantId = _tenantId; _roleEntity.PermissionType = (int)UserGroupEnum.TenantAdmin; _roleService.Insert(_roleEntity); _unitOfWork.SaveChanges(); // add Manager = 256 _roleEntity = new crm_Roles(); _roleEntity.RoleName = UserGroupEnum.Manager.ToString(); _roleEntity.Active = true; _roleEntity.MaskPermission = (int)UserGroupEnum.Manager + 15; _roleEntity.TenantId = _tenantId; _roleEntity.PermissionType = (int)UserGroupEnum.Manager; _roleService.Insert(_roleEntity); _unitOfWork.SaveChanges(); // add Support = 128 _roleEntity = new crm_Roles(); _roleEntity.RoleName = UserGroupEnum.Support.ToString(); _roleEntity.Active = true; _roleEntity.MaskPermission = (int)UserGroupEnum.Support + 15; _roleEntity.TenantId = _tenantId; _roleEntity.PermissionType = (int)UserGroupEnum.Support; _roleService.Insert(_roleEntity); _unitOfWork.SaveChanges(); // Marketing=64 _roleEntity = new crm_Roles(); _roleEntity.RoleName = UserGroupEnum.Marketing.ToString(); _roleEntity.Active = true; _roleEntity.MaskPermission = (int)UserGroupEnum.Marketing + 15; _roleEntity.TenantId = _tenantId; _roleEntity.PermissionType = (int)UserGroupEnum.Marketing; _roleService.Insert(_roleEntity); _unitOfWork.SaveChanges(); // Sales = 32 _roleEntity = new crm_Roles(); _roleEntity.RoleName = UserGroupEnum.Sales.ToString(); _roleEntity.Active = true; _roleEntity.MaskPermission = (int)UserGroupEnum.Sales + 15; _roleEntity.TenantId = _tenantId; _roleEntity.PermissionType = (int)UserGroupEnum.Sales; _roleService.Insert(_roleEntity); _unitOfWork.SaveChanges(); // NormalUser = 16 _roleEntity = new crm_Roles(); _roleEntity.RoleName = UserGroupEnum.NormalUser.ToString(); _roleEntity.Active = true; _roleEntity.MaskPermission = (int)UserGroupEnum.NormalUser + 15; _roleEntity.TenantId = _tenantId; _roleEntity.PermissionType = (int)UserGroupEnum.NormalUser; _roleService.Insert(_roleEntity); _unitOfWork.SaveChanges(); // map role tenant admin var _newRole = new crm_UserRoles(); _newRole.RoleID = _roleService.GetRoleIdByPermisstionType(_tenantId, (int)UserGroupEnum.TenantAdmin); _newRole.UserID = _userId; _userRoleService.Insert(_newRole); _unitOfWork.SaveChanges(); _helper.InsertLogActive(_logService, _unitOfWork, "User Role", "Insert role tenant admin for user", 1, true); } catch { _helper.InsertLogActive(_logService, _unitOfWork, "User Role", "Insert role tenant admin for user", 1, false); } } } catch { _helper.InsertLogActive(_logService, _unitOfWork, "Users", "Insert user tenant admin", 1, false); } } } MessageBoxModel.ShowMessage = "Add tenant " + _tenantEntity.TenantName + " success!"; return(RedirectToAction("Index")); } catch { _helper.InsertLogActive(_logService, _unitOfWork, "Tenants", "Insert new tenant", 1, false); return(View(tenantModel)); } } return(View(tenantModel)); }
public string AddEditAction(UserGroupSubmitModel model) { //Variables crm_Roles role = new crm_Roles(); ActionResultModel returnModel = new ActionResultModel(); crm_Tenants tenant = null; bool isExist = false; UserInfo usInfo = null; int totalNameDuplicate = 0; //Check permission type valid foreach (UserGroupEnum item in Enum.GetValues(typeof(UserGroupEnum))) { if (model.PermissionTypeID == Convert.ToInt32(item)) { isExist = true; break; } } if (!isExist) { returnModel.IsSuccess = 0; returnModel.Message = "Permission Type is not exist in system!"; return(JsonConvert.SerializeObject(returnModel)); } if (model.ID > 0) { role = _roleService.ODataQueryable().Where(x => x.ID.Equals(model.ID)).FirstOrDefault();//.GetRoleByID(model.ID); } //Check usergroup exist if (role == null) { returnModel.IsSuccess = 0; returnModel.Message = "User group is not exist in system!"; return(JsonConvert.SerializeObject(returnModel)); } //Check usergroup name exist //totalNameDuplicate = _roleService.CheckExistRoleName(model.Name.Trim()); //if ((model.ID <= 0 && totalNameDuplicate > 0) //Case create new // || (model.ID > 0 && totalNameDuplicate > 1 && model.OldName.Trim() == model.Name.Trim())//case edit that dont change name // || (model.ID > 0 && totalNameDuplicate > 0 && model.OldName.Trim() != model.Name.Trim()))//case edit that change name //{ // returnModel.IsSuccess = 0; // returnModel.Message = "User group's name is not exist in system!"; // return JsonConvert.SerializeObject(returnModel); //} /* * author: ri.khanh * date:2014.07.21 * fuction:check duplication roleName in 1 same group */ if (!CheckDuplicatedRolename(model.Name, model.TenantId, model.ID)) { returnModel.IsSuccess = 0; returnModel.Message = "User group's name is not exist in system!"; return(JsonConvert.SerializeObject(returnModel)); } usInfo = System.Web.HttpContext.Current.Session["UserInfo"] as UserInfo; //Set data to insert or update role.Active = model.Active != null ? true : false; role.RoleName = WebUtility.HtmlEncode(model.Name.Trim()); role.Description = WebUtility.HtmlEncode((model.Description + "").Trim()); role.PermissionType = model.PermissionTypeID; role.MaskPermission = model.PermissionTypeID; //ri.khanh if (userInfo.TenanID.Equals(0)) { if (!model.PermissionTypeID.Equals((int)UserGroupEnum.Operator)) { if (model.TenantId.Equals(0)) { returnModel.IsSuccess = 0; returnModel.Message = "please select tentant!"; return(JsonConvert.SerializeObject(returnModel)); } role.TenantId = model.TenantId; } else { role.TenantId = 0; } } //If logged in user is tenant or lower will set tenant id of logged in user foreach (int curBitMask in usInfo.BitMask) { if (model.ID <= 0 && curBitMask <= (int)UserGroupEnum.TenantAdmin) { role.TenantId = usInfo.TenanID; } } //Submit data if (model.ID <= 0) { _roleService.Insert(role); } else { role.ObjectState = ObjectState.Modified; } returnModel.IsSuccess = _unitOfWork.SaveChanges(); returnModel.Message = returnModel.IsSuccess > 0 ? "Data were saved successfully!" : "Data were saved unsuccessfully!"; //Write log //Action successfully if (returnModel.IsSuccess > 0) { //Case insert if (model.ID > 0) { _helper.InsertLogActive(_logService, _unitOfWork, "UserGroup", "Update new usergroup", 2, true); } else//Case update { _helper.InsertLogActive(_logService, _unitOfWork, "UserGroup", "Insert usergroup", 1, true); } } else//Action fail { //Case insert if (model.ID > 0) { _helper.InsertLogActive(_logService, _unitOfWork, "UserGroup", "Update new usergroup", 2, false); } else//Case update { _helper.InsertLogActive(_logService, _unitOfWork, "UserGroup", "Insert usergroup", 1, false); } } return(JsonConvert.SerializeObject(returnModel)); }
/// <summary> /// The View that to add or edit data of usergroup /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult AddEdit(int id = 0) { //variables crm_Roles roleItem = null; UserGroupModel model = new UserGroupModel(); UserInfo usInfo = null; int maxBitMask = 0; try { //Get role detail if (id > 0) { roleItem = _roleService.GetRoleByID(id); } usInfo = System.Web.HttpContext.Current.Session["UserInfo"] as UserInfo; //Get max BitMask of user foreach (int curBitMask in usInfo.BitMask) { if (curBitMask > maxBitMask) { maxBitMask = curBitMask; } } model.ListPermType = new Dictionary <int, string>(); model.ListPermType.Add(0, "Choose permission type..."); //Get list permission enum Array enumUsergroup = Enum.GetValues(typeof(UserGroupEnum)); int count = 1; foreach (UserGroupEnum usergroup in enumUsergroup) { //Don't render super admin permission into combobox if (count == enumUsergroup.Length) { break; } int bitmask = Convert.ToInt32(usergroup); //Render permission corresponding logged user if (bitmask <= maxBitMask) { model.ListPermType.Add(bitmask, usergroup.ToString()); } count++; } /* * author: ri.khanh * date : 2014.21.07 * get tenant add to list */ var listTenant = new Dictionary <int, string>(); var listTemp = (from t in _tenantService.ODataQueryable() select new { TeantName = t.TenantName, TenantId = t.TenantId }); //.ToDictionary(x => x.TenantId, x => x.TeantName); model.ListTenant = new Dictionary <int, string>(); model.ListTenant.Add(0, "Choose tenant"); foreach (var item in listTemp) { model.ListTenant.Add(item.TenantId, item.TeantName); } // model.ListTenant = listTenant; //end if (roleItem != null) { //set value for model model.ID = roleItem.ID; model.Name = WebUtility.HtmlDecode(roleItem.RoleName); model.Active = roleItem.Active.HasValue ? roleItem.Active.Value : false; model.PermissionTypeID = roleItem.PermissionType.HasValue ? roleItem.PermissionType.Value : 0; model.Description = WebUtility.HtmlDecode(roleItem.Description); model.TenantId = roleItem.TenantId; } return(View(model)); } catch { return(View("Index")); } }