示例#1
0
        /// <summary>
        /// Creates an instance of <see cref="SecurityUserControl"/> class.
        /// </summary>
        public SecurityUserControl()
        {
            InitializeComponent();
            m_userAccounts = new UserAccounts(1, false);
            m_securityGroups = new SecurityGroups(1, false);
            m_applicationRoles = new ApplicationRoles(1, true);
            RefreshBindings();
            this.Unloaded += new RoutedEventHandler(SecurityUserControl_Unloaded);
            m_userAccounts.BeforeSave += new System.ComponentModel.CancelEventHandler(m_userAccounts_BeforeSave);
            m_userAccounts.Saved += new System.EventHandler(m_userAccounts_Changed);
            m_userAccounts.Deleted += new System.EventHandler(m_userAccounts_Changed);
            m_securityGroups.Saved += new System.EventHandler(m_securityGroups_Changed);
            m_securityGroups.Deleted += new System.EventHandler(m_securityGroups_Changed);

            m_invalidPasswordMessage = new StringBuilder();
            m_invalidPasswordMessage.Append("Password does not meet the following criteria:");
            m_invalidPasswordMessage.AppendLine();
            m_invalidPasswordMessage.Append("- Password must be at least 8 characters");
            m_invalidPasswordMessage.AppendLine();
            m_invalidPasswordMessage.Append("- Password must contain at least 1 digit");
            m_invalidPasswordMessage.AppendLine();
            m_invalidPasswordMessage.Append("- Password must contain at least 1 upper case letter");
            m_invalidPasswordMessage.AppendLine();
            m_invalidPasswordMessage.Append("- Password must contain at least 1 lower case letter");
        }
示例#2
0
        public ActionResult Create(RoleViewModel RoleView)
        {
            ViewBag.Current = "Roles";

            if (ModelState.IsValid)
            {
                //Duplicated Role Name in DB:
                if (manger.Roles.Any(a => a.Name.Equals(RoleView.Name, StringComparison.OrdinalIgnoreCase)))
                {
                    return(RedirectToAction("Index", new { Id = "CreateError" }));
                }
                ApplicationRoles role = new ApplicationRoles()
                {
                    Name        = RoleView.Name,
                    CreatedAt   = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"),
                    CreatedById = this.User.Identity.GetUserId()
                };

                //OK:

                manger.Create(role);
                string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");

                string                 UserId       = User.Identity.GetUserId();
                Notification           notification = null;
                List <ApplicationUser> Users        = db.Users.Where(a => a.RoleName.Equals("Master") && !a.Id.Equals(UserId)).ToList();
                foreach (ApplicationUser user in Users)
                {
                    notification = new Notification()
                    {
                        CreatedAt = NotificationTime,
                        Active    = false,
                        UserId    = user.Id,
                        Message   = "تم إضافة دور جديد : " + role.Name
                        ,
                        NotificationOwnerId = UserId
                    };
                    db.Notifications.Add(notification);
                }

                db.SaveChanges();

                return(RedirectToAction("Index", new { Id = "CreateSuccess" }));
            }

            return(RedirectToAction("Index"));
        }
    private void BindDdllistRole(int ID, int AppID)
    {
        if (ID != 0)
        {
            AppID = userAdminObj.GetAppID(ID);
        }

        var result    = userAdminObj.GetRole(AppID, GlobalConstant.NewAccess);
        var LstRoleID = userAdminObj.GetApprovalMatrixsRole(AppID);
        List <ApplicationRoles> appRolesList = new List <ApplicationRoles>();
        int count = 0;

        foreach (var item in result)
        {
            foreach (var item2 in LstRoleID)
            {
                if (item2.RoleID == item.RoleID)
                {
                    count = 1;
                }
            }
            if (count != 1)
            {
                ApplicationRoles appRole = new ApplicationRoles();
                appRole.RoleID   = item.RoleID;
                appRole.RoleName = item.RoleName;
                appRolesList.Add(appRole);
            }
            count = 0;
        }
        if (ID != 0)
        {
            ddlRole.DataSource = result.ToList();
        }
        else
        {
            ddlRole.DataSource = appRolesList.ToList();
        }
        ddlRole.DataTextField  = "RoleName";
        ddlRole.DataValueField = "RoleID";
        ddlRole.DataBind();
        if (LstRoleID.Count() == result.Count() && ID == 0)
        {
            showMessages((int)GlobalConstant.DrawControls.Warning, "Roles Already exist in Approval Matrix, Please Select \"Edit\" to modify the Approver.", true);
            btnUpdate.Visible = false;
        }
    }
        public async Task <ActionResult> Edit(RegiterViewModelWithRole registertViewModel)
        {
            try
            {
                if (registertViewModel != null)
                {
                    Task <ApplicationUsers> applicationUsers  = accountManager.GetUserByIdAsync(registertViewModel.Id.ToString());
                    Task <ApplicationRoles> roleName          = accountManager.GetRoleByIdAsync(registertViewModel.RoleId.ToString());
                    ApplicationUsers        _applicationUsers = await applicationUsers;
                    ApplicationRoles        _roleName         = await roleName;
                    if (_applicationUsers != null && _roleName != null)
                    {
                        _applicationUsers.Email             = registertViewModel.Email;
                        _applicationUsers.MobileNumber      = registertViewModel.MobileNo;
                        _applicationUsers.LockoutEnabled    = registertViewModel.IsLocked;
                        _applicationUsers.GSTNumber         = registertViewModel.GSTNumber;
                        _applicationUsers.CountryFK         = registertViewModel.CountryFK;
                        _applicationUsers.StateFK           = registertViewModel.StateFK;
                        _applicationUsers.CityFK            = registertViewModel.CityFK;
                        _applicationUsers.NewsPaperCompany  = registertViewModel.NewsPaperCompany;
                        _applicationUsers.PressReporterName = registertViewModel.PressReporterName;
                        _applicationUsers.PressIDCard       = registertViewModel.PressIDCard;
                        (bool status, string[] response)    = await accountManager.UpdateUserAsync(_applicationUsers, new string[] { _roleName.Name });

                        if (status)
                        {
                            return(RedirectToAction("Index", "Users", new { @id = registertViewModel.RoleId }));
                        }
                        else
                        {
                            ModelState.AddModelError(Helpers.EnumAlert.Error.ToString(), string.Join(",", response));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(Helpers.EnumAlert.Error.ToString(), "User or Role not found");
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(Helpers.EnumAlert.Error.ToString(), string.Join(",", ex.InnerException));
                return(View(registertViewModel));
            }
            registertViewModel.GetRoles = new RoleHelper(repository).GetRoles(Guid.Empty);
            return(View(registertViewModel));
        }
示例#5
0
        protected void AddUserRole(UserEntityModel user, ApplicationRoles role)
        {
            // Add User Roles.
            var showAllRole = new UserRoleEntityModel
            {
                RoleId = role.GetEnumGuid(),
                User   = user
            };

            Context.UserRoles.Add(showAllRole);
            Context.SaveChanges();

            // Reload Factory.
            Factory = new ServiceFactory(Context, Identity);

            Trace.WriteLine($"Added '{role}' Role to User -> {user.UserName}");
        }
示例#6
0
        public async Task <IActionResult> DeleteApplicationRole(string id, IFormCollection form)
        {
            if (!String.IsNullOrEmpty(id))
            {
                ApplicationRoles applicationRole = await _roleManager.FindByIdAsync(id);

                if (applicationRole != null)
                {
                    IdentityResult result = _roleManager.DeleteAsync(applicationRole).Result;
                    if (result.Succeeded)
                    {
                        return(RedirectToAction("Index"));
                    }
                }
            }
            return(View());
        }
示例#7
0
        public async Task <IActionResult> AddEditApplicationRole(string id)
        {
            RolesViewModel model = new RolesViewModel();


            if (!String.IsNullOrEmpty(id))
            {
                ApplicationRoles applicationRole = await _roleManager.FindByIdAsync(id);

                if (applicationRole != null)
                {
                    model.Id          = applicationRole.Id;
                    model.Name        = applicationRole.Name;
                    model.Description = applicationRole.Description;
                }
            }
            return(PartialView("_AddEditApplicationRole", model));
        }
        public async Task <IActionResult> singup(AccountViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                ApplicationUsers applicationUser = AutoMapper.Mapper.Map <ApplicationUsers>(viewModel.RegistertViewModel);
                ApplicationRoles roleName        = await accountManager.GetRoleByNameAsync(EnumApplicationUser.USER.ToString());

                (bool success, string[] result) = await accountManager.CreateUserAsync(applicationUser, new string[] { roleName.Name }, viewModel.RegistertViewModel.Password);

                if (success)
                {
                }
                else
                {
                    ModelState.AddModelError(EnumAlert.Error.ToString(), string.Join(",", result));
                }
            }
            return(RedirectToAction("index"));
        }
示例#9
0
        public async Task <IActionResult> Register(UsersViewModel usersViewModel)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Something failed");
                return(View());
            }

            ApplicationUsers applicationUsers = new ApplicationUsers
            {
                Name           = usersViewModel.Name,
                UserName       = usersViewModel.Username,
                Email          = usersViewModel.Email,
                Address        = usersViewModel.Address,
                Country        = usersViewModel.Country,
                DateOfBirth    = usersViewModel.DateOfBirth,
                City           = usersViewModel.City,
                Region         = usersViewModel.Region,
                Gender         = usersViewModel.Gender,
                Contact        = usersViewModel.Contact,
                EmailConfirmed = false
            };
            IdentityResult result = await _userManager.CreateAsync(applicationUsers, usersViewModel.Password);

            if (result.Succeeded)
            {
                ApplicationRoles applicationRoles = await _roleManager.FindByNameAsync("User");

                if (applicationRoles != null)
                {
                    IdentityResult roleResult =
                        await _userManager.AddToRoleAsync(applicationUsers, applicationRoles.Name);

                    if (roleResult.Succeeded)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }
            }

            return(View(usersViewModel));
        }
示例#10
0
        public async Task <IActionResult> Update(string id)
        {
            ApplicationRoles role = await roleManager.FindByIdAsync(id);

            List <ApplicationUser> members    = new List <ApplicationUser>();
            List <ApplicationUser> nonMembers = new List <ApplicationUser>();

            foreach (ApplicationUser user in userManager.Users)
            {
                var list = await userManager.IsInRoleAsync(user, role.Name) ? members : nonMembers;

                list.Add(user);
            }
            return(View(new RoleEdit
            {
                Role = role,
                Members = members,
                NonMembers = nonMembers
            }));
        }
示例#11
0
        public async Task <IActionResult> Edit(string id, ApplicationRoles role)
        {
            if (id != role.Id || !ModelState.IsValid)
            {
                return(View("EditRole", role));
            }

            var roleFromDb = await _roleManager.FindByIdAsync(id);

            if (roleFromDb == null)
            {
                return(NotFound("No role item"));
            }
            roleFromDb.Name           = role.Name;
            roleFromDb.Description    = role.Description;
            roleFromDb.NormalizedName = role.Name.ToLower();
            await _roleManager.UpdateAsync(roleFromDb);

            return(RedirectToAction("Index"));
        }
示例#12
0
        public static bool CanReadFile(string filePath, ApplicationRoles userRole)
        {
            switch (userRole)
            {
            case ApplicationRoles.admin:
            {
                return(true);
            }

            case ApplicationRoles.employee:
            {
                return(filePath.EndsWith(".xml"));
            }

            default:
            {
                return(false);
            }
            }
        }
示例#13
0
        public async Task <IActionResult> Create(ApplicationRoleViewModel model)
        {
            if (ModelState.IsValid)
            {
                ApplicationRoles role = new ApplicationRoles();

                role.Name        = model.Name;
                role.Description = model.Description;
                role.RoleLevel   = model.RoleLevel;

                IdentityResult result = await _roleManager.CreateAsync(role);

                if (result.Succeeded)
                {
                    ViewBag.ViewTitle = "تعریف اجزای سیستم";
                    return(RedirectToAction("Index"));
                }
            }

            return(View(model));
        }
    public IEnumerable <ApplicationRoles> GetApprovalMatrixsRole(int AppID)
    {
        sqlconn = new SqlConnection(sqlconnectionstring);
        sqlconn.Open();
        string SP = GlobalConstant.USP_GetApprovalMatrixs;

        sqlcmd             = new SqlCommand(SP, sqlconn);
        sqlcmd.CommandType = CommandType.StoredProcedure;
        sqlcmd.Parameters.AddWithValue("@AppID", AppID);
        SqlDataReader           returnLst = sqlcmd.ExecuteReader();
        List <ApplicationRoles> Lstmenu   = new List <ApplicationRoles>();

        while (returnLst.Read())
        {
            ApplicationRoles m = new ApplicationRoles();
            m.RoleID = (int)returnLst["RoleID"];
            Lstmenu.Add(m);
        }
        sqlconn.Close();
        return(Lstmenu);
    }
示例#15
0
        public async Task <IActionResult> SignUp(UsersViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Something wrong");
                return(View(model));
            }
            ApplicationUsers user = new ApplicationUsers
            {
                Name           = model.Name,
                UserName       = model.UserName,
                Email          = model.Email,
                Address        = model.Address,
                Refference     = model.Refference,
                CityId         = model.CityId,
                DateOfBirth    = model.DateOfBirth,
                Gender         = model.Gender,
                JoinIp         = "1234",
                Contact        = model.Contact,
                EmailConfirmed = false,
            };

            IdentityResult result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                ApplicationRoles applicationRoles = await _roleManager.FindByNameAsync("user");

                if (applicationRoles != null)
                {
                    IdentityResult roleResult = await _userManager.AddToRoleAsync(user, applicationRoles.Name);

                    if (roleResult.Succeeded)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }
            }
            return(View(model));
        }
    /// <summary>
    /// Fetches the LADP details for current login user
    /// </summary>
    /// <returns></returns>
    //public bool GetUserDetailsFromLDAP()
    //{
    //LDAP.LDAP ldapConnection = new LDAP.LDAP();
    //string StampUserId = (Thread.CurrentPrincipal.Identity).Name;
    //int start = StampUserId.IndexOf("\\");
    //StampUserId = StampUserId.Substring(start + 1).ToString();
    //ldapConnection.SetLdapConnection(StampUserId, LDAPConfiguration.GetResourceName("LDAP_CONNECTION"));
    //this.RequestorName = ldapConnection.LastName + ", " + ldapConnection.GivenName;
    //this.RequestorEmail = ldapConnection.Email;
    //return true;
    //}
    /// <summary>
    /// Get Role  from the Application
    /// </summary>
    /// <param name="AppID"></param>
    /// <returns></returns>
    public IEnumerable <ApplicationRoles> GetRole(int AppID, string NewAccess)
    {
        sqlconn = new SqlConnection(sqlconnectionstring);
        sqlconn.Open();
        string SP = GlobalConstant.USP_GetApplicationAccessDetails;

        sqlcmd             = new SqlCommand(SP, sqlconn);
        sqlcmd.CommandType = CommandType.StoredProcedure;
        sqlcmd.Parameters.AddWithValue("@AppID", AppID);
        sqlcmd.Parameters.AddWithValue("@RequestType", NewAccess);
        SqlDataReader  returnLst = sqlcmd.ExecuteReader();
        ConStringAndSP conStrSP  = new ConStringAndSP();

        while (returnLst.Read())
        {
            conStrSP.ConnString      = returnLst["ConnString"].ToString();
            conStrSP.StoredProcedure = returnLst["StoredProcedure"].ToString();
        }
        sqlconn.Close();
        sqlconn = new SqlConnection(conStrSP.ConnString);
        sqlconn.Open();
        string appSP = conStrSP.StoredProcedure;

        sqlcmd             = new SqlCommand(appSP, sqlconn);
        sqlcmd.CommandType = CommandType.StoredProcedure;
        SqlDataReader           appRoleLst = sqlcmd.ExecuteReader();
        List <ApplicationRoles> Lstmenu    = new List <ApplicationRoles>();

        while (appRoleLst.Read())
        {
            ApplicationRoles m = new ApplicationRoles();
            m.RoleID   = (int)appRoleLst["RoleID"];
            m.AppID    = AppID;
            m.RoleName = appRoleLst["RoleName"].ToString();
            Lstmenu.Add(m);
        }
        sqlconn.Close();
        return(Lstmenu);
    }
示例#17
0
        public static void SeedRoles(RoleManager <ApplicationRoles> roleManager)
        {
            if (!roleManager.RoleExistsAsync
                    ("User").Result)
            {
                ApplicationRoles role = new ApplicationRoles
                {
                    Name        = "User",
                    Description = "Perform normal operations."
                };
                IdentityResult roleResult = roleManager.
                                            CreateAsync(role).Result;
            }


            if (!roleManager.RoleExistsAsync
                    ("Admin").Result)
            {
                ApplicationRoles role = new ApplicationRoles
                {
                    Name        = "Admin",
                    Description = "Perform all the operations."
                };
                IdentityResult roleResult = roleManager.
                                            CreateAsync(role).Result;
            }

            if (!roleManager.RoleExistsAsync
                    ("Editor").Result)
            {
                ApplicationRoles role = new ApplicationRoles
                {
                    Name        = "Editor",
                    Description = "Can Edit  all the operations."
                };
                IdentityResult roleResult = roleManager.
                                            CreateAsync(role).Result;
            }
        }
示例#18
0
        public ActionResult Confirm(string Id)
        {
            ViewBag.Current = "Roles";

            //Delete Permission roles:
            List <PermissionRole> PRoles = db.PermissionRoles.Where(a => a.RoleId.Equals(Id)).ToList();

            foreach (PermissionRole PR in PRoles)
            {
                db.PermissionRoles.Remove(PR);
            }

            ApplicationRoles AppRole = manger.Roles.FirstOrDefault(a => a.Id.Equals(Id));

            db.Roles.Remove(AppRole);
            db.SaveChanges();

            string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");

            string                 UserId       = User.Identity.GetUserId();
            Notification           notification = null;
            List <ApplicationUser> Users        = db.Users.Where(a => a.RoleName.Equals("Master") && !a.Id.Equals(UserId)).ToList();

            foreach (ApplicationUser user in Users)
            {
                notification = new Notification()
                {
                    CreatedAt = NotificationTime,
                    Active    = false,
                    UserId    = user.Id,
                    Message   = "تم حذف الدور  : " + AppRole.Name
                    ,
                    NotificationOwnerId = UserId
                };
                db.Notifications.Add(notification);
            }
            db.SaveChanges();
            return(RedirectToAction("Index", new { Id = "DeleteSuccess" }));
        }
示例#19
0
 private void SecurityUserControl_Unloaded(object sender, RoutedEventArgs e)
 {
     try
     {
         if (m_userAccounts != null)
         {
             m_userAccounts.BeforeSave -= m_userAccounts_BeforeSave;
             m_userAccounts.Saved      -= m_userAccounts_Changed;
             m_userAccounts.Deleted    -= m_userAccounts_Changed;
         }
         if (m_securityGroups != null)
         {
             m_securityGroups.Saved   -= m_securityGroups_Changed;
             m_securityGroups.Deleted -= m_securityGroups_Changed;
         }
     }
     finally
     {
         m_userAccounts     = null;
         m_securityGroups   = null;
         m_applicationRoles = null;
     }
 }
示例#20
0
        public async Task <IActionResult> Delete(string id)
        {
            ApplicationRoles role = await roleManager.FindByIdAsync(id);

            if (role != null)
            {
                IdentityResult result = await roleManager.DeleteAsync(role);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    Errors(result);
                }
            }
            else
            {
                ModelState.AddModelError("", "No role found");
            }
            return(View("Index", roleManager.Roles));
        }
示例#21
0
 public string AddEditUserRoles(ApplicationRoles roles, IHttpContextAccessor contextAccessor)
 {
     try
     {
         if (roles.Id == 0)
         {
             ApplicationRoles application = new ApplicationRoles();
             application.RoleName    = roles.RoleName;
             application.Description = roles.Description;
             _context.ApplicationRoles.Add(application);
             _context.SaveChanges();
         }
         else
         {
             _context.ApplicationRoles.Update(roles);
             _context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
     }
     return("");
 }
示例#22
0
        public static List <string> GetRoutesByRole(string role)
        {
            if (string.IsNullOrWhiteSpace(role))
            {
                role = ApplicationRoles.Public.ToString();
            }
            ApplicationRoles appRole = (ApplicationRoles)Enum.Parse(typeof(ApplicationRoles), role);

            switch (appRole)
            {
            case ApplicationRoles.SuperAdmin:
                return(GetAllRoutes());

            case ApplicationRoles.Admin:
                return(GetAdminRoutes());

            case ApplicationRoles.GeneralUser:
                return(GetUserRoutes());

            default:
                return(GetPublicRoutes());
            }
        }
        public async Task <IActionResult> Create(RegiterViewModelWithRole registertViewModel)
        {
            try
            {
                ModelState.Remove("RoleName");
                if (ModelState.IsValid)
                {
                    ApplicationUsers applicationUsers = AutoMapper.Mapper.Map <ApplicationUsers>(registertViewModel);
                    applicationUsers.Id             = Guid.NewGuid();
                    applicationUsers.IsInternalRole = true;
                    ApplicationRoles roleName = await accountManager.GetRoleByIdAsync(registertViewModel.RoleId.ToString());

                    (bool result, string[] response) = await accountManager.CreateUserAsync(applicationUsers, new string[] { roleName.Name }, registertViewModel.Password);

                    if (result)
                    {
                        logger.LogInformation($"Successfully Created ${registertViewModel.Email}");
                        ModelState.AddModelError(EnumAlert.Info.ToString(), "Successfully Created");
                        return(RedirectToAction(nameof(Index), new { Id = registertViewModel.RoleId }));
                    }
                    else
                    {
                        logger.LogInformation($"ModelState No Valied ${registertViewModel.Email}${response.JoinError()}");
                        ModelState.AddModelError(EnumAlert.Info.ToString(), response.JoinError());
                        return(View(registertViewModel));
                    }
                }
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"Error Occured ${registertViewModel.Email}");
                registertViewModel.GetRoles = new RoleHelper(repository).GetRoles(Guid.Empty);
                return(View(registertViewModel));
            }
            registertViewModel.GetRoles = new RoleHelper(repository).GetRoles(Guid.Empty);
            return(View(registertViewModel));
        }
示例#24
0
        /// <summary>
        /// Creates an instance of <see cref="SecurityUserControl"/> class.
        /// </summary>
        public SecurityUserControl()
        {
            ConfigurationFile config;
            CategorizedSettingsElementCollection settings;

            InitializeComponent();

            config = ConfigurationFile.Current;
            settings = config.Settings["securityProvider"];

            // Set up defaults for config file settings
            m_passwordRequirementsRegex = AdoSecurityProvider.DefaultPasswordRequirementsRegex;
            m_passwordRequirementsError = AdoSecurityProvider.DefaultPasswordRequirementsError;

            // Make sure default config file settings exist
            settings.Add("PasswordRequirementsRegex", m_passwordRequirementsRegex, "Regular expression used to validate new passwords for database users.");
            settings.Add("PasswordRequirementsError", m_passwordRequirementsError, "Error message to be displayed when new database user password fails regular expression test.");

            // Read settings from config file
            m_passwordRequirementsRegex = settings["PasswordRequirementsRegex"].ValueAs(m_passwordRequirementsRegex);
            m_passwordRequirementsError = settings["PasswordRequirementsError"].ValueAs(m_passwordRequirementsError);

            // Initialize view models
            m_userAccounts = new UserAccounts(1, false);
            m_securityGroups = new SecurityGroups(1, false);
            m_applicationRoles = new ApplicationRoles(1, true);

            RefreshBindings();

            // Attach to events
            Unloaded += SecurityUserControl_Unloaded;
            m_userAccounts.BeforeSave += m_userAccounts_BeforeSave;
            m_userAccounts.Saved += m_userAccounts_Changed;
            m_userAccounts.Deleted += m_userAccounts_Changed;
            m_securityGroups.Saved += m_securityGroups_Changed;
            m_securityGroups.Deleted += m_securityGroups_Changed;
        }
示例#25
0
        /// <summary>
        /// Creates an instance of <see cref="SecurityUserControl"/> class.
        /// </summary>
        public SecurityUserControl()
        {
            ConfigurationFile config;
            CategorizedSettingsElementCollection settings;

            InitializeComponent();

            config   = ConfigurationFile.Current;
            settings = config.Settings["securityProvider"];

            // Set up defaults for config file settings
            m_passwordRequirementsRegex = AdoSecurityProvider.DefaultPasswordRequirementsRegex;
            m_passwordRequirementsError = AdoSecurityProvider.DefaultPasswordRequirementsError;

            // Make sure default config file settings exist
            settings.Add("PasswordRequirementsRegex", m_passwordRequirementsRegex, "Regular expression used to validate new passwords for database users.");
            settings.Add("PasswordRequirementsError", m_passwordRequirementsError, "Error message to be displayed when new database user password fails regular expression test.");

            // Read settings from config file
            m_passwordRequirementsRegex = settings["PasswordRequirementsRegex"].ValueAs(m_passwordRequirementsRegex);
            m_passwordRequirementsError = settings["PasswordRequirementsError"].ValueAs(m_passwordRequirementsError);

            // Initialize view models
            m_userAccounts     = new UserAccounts(1, false);
            m_securityGroups   = new SecurityGroups(1, false);
            m_applicationRoles = new ApplicationRoles(1, true);

            RefreshBindings();

            // Attach to events
            Unloaded += SecurityUserControl_Unloaded;
            m_userAccounts.BeforeSave += m_userAccounts_BeforeSave;
            m_userAccounts.Saved      += m_userAccounts_Changed;
            m_userAccounts.Deleted    += m_userAccounts_Changed;
            m_securityGroups.Saved    += m_securityGroups_Changed;
            m_securityGroups.Deleted  += m_securityGroups_Changed;
        }
示例#26
0
        public ActionResult Index(string Id, string msg = "none")
        {
            ViewBag.Current = "Roles";

            if (Id == null)
            {
                return(RedirectToAction("BadRequestError", "ErrorController"));
            }
            RoleManager <ApplicationRoles> manger = new RoleManager <ApplicationRoles>(new RoleStore <ApplicationRoles>(db));

            ApplicationRoles role = manger.FindById(Id);

            if (role == null)
            {
                return(RedirectToAction("HttpNotFoundError", "ErrorController"));
            }

            if (!msg.Equals("none"))
            {
                ViewBag.Msg = msg;
            }
            else
            {
                ViewBag.Msg = null;
            }



            //Role ID:
            Session["Role_Id"] = role.Id;

            //Permission Role Informations:
            var permissionRoles = db.PermissionRoles.Where(a => a.RoleId.Equals(Id)).Include(p => p.Permission).Include(p => p.Role).Include(a => a.CreatedBy).Include(a => a.UpdatedBy);

            return(View(permissionRoles.OrderByDescending(a => a.CreatedAt).ToList()));
        }
示例#27
0
        // PUT: odata/Projects(5)
        public IHttpActionResult Put([FromODataUri] int key, Delta <ApplicationRoles> patch)
        {
            Validate(patch.GetInstance());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ApplicationRoles app = db.ApplicationRoles.Find(key);

            if (app == null)
            {
                return(NotFound());
            }

            patch.Put(app);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProjectExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(app));
        }
示例#28
0
        public async Task <(bool, string[])> CreateRoleAsync(ApplicationRoles role, IEnumerable <string> claims)
        {
            if (claims == null)
            {
                claims = new string[] { }
            }
            ;

            //string[] invalidClaims = claims.Where(c => ApplicationPermissions.GetPermissionByValue(c) == null).ToArray();
            //if (invalidClaims.Any())
            //	return Tuple.Create(false, new[] { "The following claim types are invalid: " + string.Join(", ", invalidClaims) });


            var result = await _roleManager.CreateAsync(role);

            if (!result.Succeeded)
            {
                return(false, result.Errors.Select(e => e.Description).ToArray());
            }


            //role = await _roleManager.FindByNameAsync(role.Name);

            //foreach (string claim in claims.Distinct())
            //{
            //	result = await this._roleManager.AddClaimAsync(role, new Claim(CustomClaimTypes.Permission, ApplicationPermissions.GetPermissionByValue(claim)));

            //	if (!result.Succeeded)
            //	{
            //		await DeleteRoleAsync(role);
            //		return Tuple.Create(false, result.Errors.Select(e => e.Description).ToArray());
            //	}
            //}

            return(true, new string[] { });
        }
示例#29
0
 private void SecurityUserControl_Unloaded(object sender, RoutedEventArgs e)
 {
     try
     {
         if (m_userAccounts != null)
         {
             m_userAccounts.BeforeSave -= m_userAccounts_BeforeSave;
             m_userAccounts.Saved -= m_userAccounts_Changed;
             m_userAccounts.Deleted -= m_userAccounts_Changed;
         }
         if (m_securityGroups != null)
         {
             m_securityGroups.Saved -= m_securityGroups_Changed;
             m_securityGroups.Deleted -= m_securityGroups_Changed;
         }
     }
     finally
     {
         m_userAccounts = null;
         m_securityGroups = null;
         m_applicationRoles = null;
     }
 }
示例#30
0
 private void m_securityGroups_Changed(object sender, System.EventArgs e)
 {
     m_applicationRoles = new ApplicationRoles(1, true);
     RefreshBindings();
 }
示例#31
0
 private void m_securityGroups_Changed(object sender, EventArgs e)
 {
     m_applicationRoles = new ApplicationRoles(1, true);
     RefreshBindings();
 }
示例#32
0
        public IActionResult AddEditRoles(ApplicationRoles roles)
        {
            var result = _account.AddEditUserRoles(roles, _httpContext);

            return(new JsonResult("success"));
        }
示例#33
0
        public async Task <bool> IsRoleApplicationRoles(string roleName)
        {
            ApplicationRoles applicationRoles = await roleManager.FindByNameAsync(roleName);

            return(applicationRoles != null);
        }
示例#34
0
 private void m_userAccounts_Changed(object sender, System.EventArgs e)
 {
     TextBoxPassword.Password = string.Empty;
     m_securityGroups = new SecurityGroups(1, false);
     m_applicationRoles = new ApplicationRoles(1, true);
     RefreshBindings();
 }
示例#35
0
        public static MvcHtmlString AddButton(this HtmlHelper html, string function, string text, ApplicationRoles role)
        {
            var result = string.Empty;

            if (!HttpContext.Current.User.IsInRole(role.ToString()))
            {
                return(new MvcHtmlString(result));
            }

            result = $"<a onclick=\"{function}\" class=\"btn btn-sm btn-default\">" +
                     $"<i class=\"glyphicon glyphicon-plus\"></i>&nbsp;Add {text}</a>";

            return(new MvcHtmlString(result));
        }