Esempio n. 1
0
        private void LoadData()
        {
            btnClose.OnClientClick = ActiveWindow.GetHideReference();
            int id = GetQueryIntValue("id");

            if (id > 0)
            {
                PermissionRole current = DB.PermissionRoles.Find(id);
                if (current == null)
                {
                    // 参数错误,首先弹出Alert对话框然后关闭弹出窗口
                    Alert.Show("参数错误!", String.Empty, ActiveWindow.GetHideReference());
                    return;
                }

                tbxName.Text         = current.Name;
                tbxRemark.Text       = current.Remark;
                tbxIsActive.Checked  = current.IsActive;
                tbxDisplayOrder.Text = current.DisplayOrder.ToString();
                if (current.IsClientAdminRole)
                {
                    tbxIsActive.Enabled = false;
                    tbxIsActive.Checked = true;
                }
            }
        }
Esempio n. 2
0
        public ActionResult PermissionRoleEditProvide()
        {
            string         currentCheckedId = RQuery["currentCheckedId"];
            PermissionRole permissionRole   = null;

            if (string.IsNullOrWhiteSpace(currentCheckedId))
            {
                permissionRole = new PermissionRole();
            }
            else
            {
                permissionRole = _permissionRoleService.GetById(new Guid(currentCheckedId));
            }

            UpdateModel <PermissionRole>(permissionRole);

            if (string.IsNullOrWhiteSpace(currentCheckedId))
            {
                _permissionRoleService.Insert(permissionRole);
                base.AddLog(string.Format("添加角色[{0}]成功", permissionRole.Name), AdminLoggerModuleEnum.Role);
                return(JsonMessage(true, "添加角色成功"));
            }
            else
            {
                _permissionRoleService.Update(permissionRole);
                base.AddLog(string.Format("编辑角色[{0}]成功", permissionRole.Name), AdminLoggerModuleEnum.Role);
                return(JsonMessage(true, "编辑角色成功"));
            }
        }
Esempio n. 3
0
        public ActionResult DeleteConfirmed(int id)
        {
            ViewBag.Current = "Roles";

            PermissionRole permissionRole = db.PermissionRoles.Include(a => a.Role).Include(a => a.CreatedBy).FirstOrDefault(a => a.Id == id);

            db.PermissionRoles.Remove(permissionRole);
            db.SaveChanges();
            string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");
            string Role_ID          = Session["Role_Id"].ToString();
            string RoleName         = db.Roles.Find(Role_ID).Name;
            string UserId           = User.Identity.GetUserId();
            string PermissionName   = db.Permissions.Find(permissionRole.PermissionId).Name;

            Notification           notification = null;
            List <ApplicationUser> Users        = db.Users.Where(a => !a.Id.Equals(UserId) && a.RoleName.Equals(RoleName)).ToList();

            foreach (ApplicationUser user in Users)
            {
                notification = new Notification()
                {
                    CreatedAt           = NotificationTime,
                    Active              = false,
                    UserId              = user.Id,
                    Message             = "تم حذف صلاحية  : " + PermissionName + " من الدور :" + RoleName,
                    NotificationOwnerId = UserId
                };
                db.Notifications.Add(notification);
            }
            db.SaveChanges();
            return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "DeleteSuccess" }));
        }
Esempio n. 4
0
        /// <summary>
        /// Delete provided team
        /// </summary>
        /// <param name="entity">Team</param>
        /// <returns>Returns list of validations</returns>
        public async Task <IList <ValidationResult> > DeletePermissionRole(PermissionRole entity, string userId)
        {
            //Validazione argomenti
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            //Se l'oggetto � esistente, eccezione
            if (string.IsNullOrEmpty(entity.Id))
            {
                throw new InvalidProgramException("Provided role doesn't have valid Id");
            }
            var validations = new List <ValidationResult>();

            //Check permissions
            if (!await ValidateUserPermissions(userId, Permissions.ManagePermissions))
            {
                validations.AddMessage($"User {userId} has no permissions on {nameof(DeletePermissionRole)} with Id: {entity.Id}");
                return(validations);
            }

            //Esecuzione in transazione
            using var t = DataSession.BeginTransaction();

            //Eliminazione
            _permissionRoleRepository.Delete(entity);

            t.Commit();
            return(validations);
        }
Esempio n. 5
0
        protected void Grid2_RowCommand(object sender, GridCommandEventArgs e)
        {
            int roleID = GetSelectedDataKeyID(Grid1);

            object[] values = Grid2.DataKeys[e.RowIndex];
            int      userID = Convert.ToInt32(values[0]);

            if (e.CommandName == "Delete")
            {
                // 在操作之前进行权限检查

                PermissionRole role = DB.PermissionRoles.Where(r => r.ID == roleID)
                                      .FirstOrDefault();

                UserPermissionRole tobeRemoved = DB.UserPermissionRoles.Where(u => u.UserID == userID && u.PermissionRoleID == roleID).FirstOrDefault();

                if (role != null && tobeRemoved != null)
                {
                    DB.UserPermissionRoles.Remove(tobeRemoved);
                    DB.SaveChanges();
                }

                BindGrid2();
            }
        }
Esempio n. 6
0
        protected void btnDeleteSelected_Click(object sender, EventArgs e)
        {
            // 在操作之前进行权限检查

            // 从每个选中的行中获取ID(在Grid1中定义的DataKeyNames)
            int        roleID  = GetSelectedDataKeyID(Grid1);
            List <int> userIDs = GetSelectedDataKeyIDs(Grid2);

            PermissionRole role = DB.PermissionRoles.Where(r => r.ID == roleID)
                                  .FirstOrDefault();

            //role.Users.Where(u => userIDs.Contains(u.ID)).ToList().ForEach(u => role.Users.Remove(u));
            foreach (int userID in userIDs)
            {
                UserPermissionRole serPermissionRole = DB.UserPermissionRoles.Where(u => u.UserID == userID && u.PermissionRoleID == roleID).FirstOrDefault();
                if (serPermissionRole != null)
                {
                    DB.UserPermissionRoles.Remove(serPermissionRole);
                }
            }

            DB.SaveChanges();

            // 清空当前选中的项
            Grid2.SelectedRowIndexArray = null;

            // 重新绑定表格
            BindGrid2();
        }
Esempio n. 7
0
        protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
        {
            int roleID = GetSelectedDataKeyID(Grid1);

            if (e.CommandName == "Delete")
            {
                // 在操作之前进行权限检查
                if (DB.PermissionRoles.Find(roleID).ForbidDelete)
                {
                    Alert.ShowInTop("系统必须的角色, 不能删除");
                    return;
                }

                int userCountUnderThisRole = DB.Users.Where(u => u.UserPermissionRoles.Any(r => r.ID == roleID)).Count();

                if (userCountUnderThisRole > 0)
                {
                    Alert.ShowInTop("删除失败!需要先清空属于此角色的用户!");
                    return;
                }

                // 执行数据库操作
                //DB.PermissionRoles.Where(item => item.ID == roleID).Delete<PermissionRole>();
                PermissionRole permissionRole = DB.PermissionRoles.Where(item => item.ID == roleID).FirstOrDefault();
                GenericRepository <PermissionRole> repository = UnitOfWork.Repository <PermissionRole>();
                if (!repository.Delete(permissionRole, out msg))
                {
                    Alert.ShowInTop("删除失败!");
                }

                BindGrid();
            }
        }
Esempio n. 8
0
        public async Task <IActionResult> UpdateUserRole(Guid id, Guid roleId)
        {
            PermissionRole role = await _context.PermissionRoles.FirstOrDefaultAsync(r => r.Id == roleId);

            if (role == null)
            {
                return(BadRequest("Role doesn't exist"));
            }
            Account account = await _context.Accounts.FirstOrDefaultAsync(a => a.Id == id);

            if (account == null)
            {
                return(BadRequest("User not found"));
            }

            account.RoleId = role.Id;
            if (await _context.SaveChangesAsync() > 0)
            {
                return(Ok());
            }
            else
            {
                return(BadRequest("Could not update role"));
            }
        }
Esempio n. 9
0
        public void CreateMasterRole()
        {
            RoleManager <ApplicationRoles> roleManager = new RoleManager <ApplicationRoles>(new RoleStore <ApplicationRoles>(db));

            ApplicationRoles role = new ApplicationRoles();

            if (!roleManager.RoleExists("Master"))
            {
                role.Name = "Master";



                roleManager.Create(role);

                PermissionRole prole;
                //Add All Permission to Super Admin
                IEnumerable <Permission> Permissions = db.Permissions.Where(a => a.TypeMaster == true);
                foreach (Permission myPermission in Permissions)
                {
                    prole = new PermissionRole()
                    {
                        RoleId       = role.Id,
                        PermissionId = myPermission.Id,
                        Is_Active    = true
                    };

                    db.PermissionRoles.Add(prole);
                }
            }



            db.SaveChanges();
        }
Esempio n. 10
0
        public ActionResult PermissionRoleList()
        {
            if (!base.HasPermission("role", PermissionOperate.manager))
            {
                return(base.ShowNotPermissionTip(""));
            }

            ViewBag.Permissions      = string.Empty;
            ViewBag.Name             = string.Empty;
            ViewBag.CurrentCheckedId = string.Empty;
            IList <PermissionModule> list1 = _permissionModuleService.GetALL("Sort", true);
            IList <PermissionModule> list2 = new List <PermissionModule>();

            BuildPermissionModule(list1, Guid.Empty, list2);
            //所有权限
            IList <PermissionModuleCode> listPermission = _permissionModuleCodeService.GetALL("CreateDate", true);

            ViewBag.ListPermission = listPermission;
            //当前角色权限
            string permissionRoleId = RQuery["permissionRoleId"];

            if (!string.IsNullOrWhiteSpace(permissionRoleId))
            {
                PermissionRole permissionRole = _permissionRoleService.GetById(new Guid(permissionRoleId));
                ViewBag.Permissions      = permissionRole.Permissions;
                ViewBag.Name             = permissionRole.Name;
                ViewBag.CurrentCheckedId = permissionRole.Id;
            }

            return(View(list2));
        }
Esempio n. 11
0
        private List <PermissionRole> GetSelectedRolePermisions(string roleId)
        {
            List <PermissionRole> permissionRoles = new List <PermissionRole>();
            var existingAccessCodes = GetExistingAccessCodes();
            var checkedItems        = cblMasterData.CheckedItems.OfType <object>().ToList();

            checkedItems.AddRange(cblTransaksi.CheckedItems.OfType <object>().ToList());
            checkedItems.AddRange(cblReporting.CheckedItems.OfType <object>().ToList());

            foreach (var checkedItem in checkedItems)
            {
                var permissionCode = existingAccessCodes.Where(a => checkedItem.ToString().Contains(a.ToString())).FirstOrDefault().ToString();
                var permission     = new UnitOfWork <Permission>(dbContext).Repository.GetAll()
                                     .Where(e => e.PermissionCode == permissionCode).FirstOrDefault();

                var permRole = new PermissionRole
                {
                    RoleId      = roleId.ToUpper(),
                    PermisionId = permission.Id,

                    // Audit Fields
                    CreatedBy  = Properties.Settings.Default.CurrentUserId,
                    CreatedAt  = DateTime.Now,
                    ModifiedBy = Properties.Settings.Default.CurrentUserId,
                    ModifiedAt = DateTime.Now
                };
                permissionRoles.Add(permRole);
            }
            return(permissionRoles);
        }
        public void Test_ObjectDelete()
        {
            SyncTestHelpers.RequiresRos();

            AsyncContext.Run(async() =>
            {
                var userA = await SyncTestHelpers.GetUserAsync();
                var userB = await SyncTestHelpers.GetUserAsync();

                var realmUri = await CreateRealm(r =>
                {
                    var reader = PermissionRole.Get(r, "reader");
                    reader.Users.Add(userA);
                    reader.Users.Add(userB);

                    var writer = PermissionRole.Get(r, "writer");
                    writer.Users.Add(userA);

                    var obj1 = r.Add(new ObjectWithPermissions
                    {
                        Id          = 1,
                        StringValue = "Value 1"
                    });
                    CreatePermissions(obj1.Permissions);
                }, addObjects: false);

                using (var realmA = GetRealm(userA, realmUri))
                    using (var realmB = GetRealm(userB, realmUri))
                    {
                        var subscriptionB = await SubscribeToObjectsAsync(realmB);
                        var objB          = subscriptionB.Results.Single();
                        realmB.Write(() =>
                        {
                            realmB.Remove(objB);
                        });

                        Assert.That(subscriptionB.Results.Count(), Is.Zero);
                        await WaitForSyncAsync(realmB);
                        Assert.That(subscriptionB.Results.Count(), Is.EqualTo(1));
                        objB = subscriptionB.Results.Single();

                        var subscriptionA = await SubscribeToObjectsAsync(realmA);
                        var objA          = subscriptionA.Results.Single();
                        realmA.Write(() =>
                        {
                            realmA.Remove(objA);
                        });

                        await WaitForSyncAsync(realmA);
                        await WaitForSyncAsync(realmB);

                        Assert.That(subscriptionA.Results.Count(), Is.Zero);
                        Assert.That(subscriptionB.Results.Count(), Is.Zero);

                        Assert.That(objA.IsValid, Is.False);
                        Assert.That(objB.IsValid, Is.False);
                    }
            });
        }
        public void Test_ClassUpdate()
        {
            SyncTestHelpers.RequiresRos();

            AsyncContext.Run(async() =>
            {
                var userA = await SyncTestHelpers.GetUserAsync();
                var userB = await SyncTestHelpers.GetUserAsync();

                var realmUri = await CreateRealm(r =>
                {
                    CreatePermissions(ClassPermission.Get <ObjectWithPermissions>(r).Permissions);

                    var reader = PermissionRole.Get(r, "reader");
                    reader.Users.Add(userA);
                    reader.Users.Add(userB);

                    var writer = PermissionRole.Get(r, "writer");
                    writer.Users.Add(userA);
                });

                using (var realm = GetRealm(userA, realmUri))
                {
                    var subscription = await SubscribeToObjectsAsync(realm);
                    AssertRealmPrivileges(realm, RealmPrivileges.Read | RealmPrivileges.Update | RealmPrivileges.ModifySchema | RealmPrivileges.SetPermissions);
                    AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe | ClassPrivileges.Update | ClassPrivileges.Create);
                    AssertObjectPrivileges(realm, ObjectPrivileges.Read | ObjectPrivileges.Update | ObjectPrivileges.Delete | ObjectPrivileges.SetPermissions);

                    var obj = realm.Find <ObjectWithPermissions>(1);
                    realm.Write(() =>
                    {
                        obj.StringValue = "New value";
                    });

                    await WaitForSyncAsync(realm);
                    Assert.That(obj.StringValue, Is.EqualTo("New value"));
                }

                using (var realm = GetRealm(userB, realmUri))
                {
                    var subscription = await SubscribeToObjectsAsync(realm);
                    AssertRealmPrivileges(realm, RealmPrivileges.Read | RealmPrivileges.Update | RealmPrivileges.ModifySchema | RealmPrivileges.SetPermissions);
                    AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe);
                    AssertObjectPrivileges(realm, ObjectPrivileges.Read);

                    var obj = realm.Find <ObjectWithPermissions>(1);
                    realm.Write(() =>
                    {
                        obj.StringValue = "New value 2";
                    });

                    Assert.That(obj.StringValue, Is.EqualTo("New value 2"));
                    await WaitForSyncAsync(realm);

                    // Change is reverted
                    Assert.That(obj.StringValue, Is.EqualTo("New value"));
                }
            });
        }
        public void Test_ObjectUpdate()
        {
            SyncTestHelpers.RequiresRos();

            AsyncContext.Run(async() =>
            {
                var userA = await SyncTestHelpers.GetUserAsync();
                var userB = await SyncTestHelpers.GetUserAsync();

                var realmUri = await CreateRealm(r =>
                {
                    var reader = PermissionRole.Get(r, "reader");
                    reader.Users.Add(userA);
                    reader.Users.Add(userB);

                    var writer = PermissionRole.Get(r, "writer");
                    writer.Users.Add(userA);

                    var obj1 = r.Add(new ObjectWithPermissions
                    {
                        Id          = 1,
                        StringValue = "Value 1"
                    });
                    CreatePermissions(obj1.Permissions);
                }, addObjects: false);

                using (var realm = GetRealm(userA, realmUri))
                {
                    var subscription = await SubscribeToObjectsAsync(realm);
                    var obj1         = subscription.Results.Single();
                    realm.Write(() =>
                    {
                        obj1.StringValue = "New value";
                    });

                    await WaitForSyncAsync(realm);

                    Assert.That(obj1.StringValue, Is.EqualTo("New value"));
                }

                using (var realm = GetRealm(userB, realmUri))
                {
                    var subscription = await SubscribeToObjectsAsync(realm);
                    var obj1         = subscription.Results.Single();
                    realm.Write(() =>
                    {
                        obj1.StringValue = "New value #2";
                    });

                    Assert.That(obj1.StringValue, Is.EqualTo("New value #2"));
                    await WaitForSyncAsync(realm);

                    Assert.That(obj1.StringValue, Is.EqualTo("New value"));
                }
            });
        }
        public void Test_RealmUpdate()
        {
            SyncTestHelpers.RequiresRos();

            AsyncContext.Run(async() =>
            {
                var userA = await SyncTestHelpers.GetUserAsync();
                var userB = await SyncTestHelpers.GetUserAsync();

                var realmUri = await CreateRealm(r =>
                {
                    CreatePermissions(RealmPermission.Get(r).Permissions);
                    var reader = PermissionRole.Get(r, "reader");
                    reader.Users.Add(userA);
                    reader.Users.Add(userB);

                    var writer = PermissionRole.Get(r, "writer");
                    writer.Users.Add(userA);
                });

                using (var realm = GetRealm(userA, realmUri))
                {
                    var subscription = await SubscribeToObjectsAsync(realm);
                    AssertRealmPrivileges(realm, RealmPrivileges.Read | RealmPrivileges.Update);
                    AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe |
                                          ClassPrivileges.Create | ClassPrivileges.SetPermissions | ClassPrivileges.Update);
                    AssertObjectPrivileges(realm, ObjectPrivileges.Read | ObjectPrivileges.Delete |
                                           ObjectPrivileges.SetPermissions | ObjectPrivileges.Update);

                    Assert.That(subscription.Results.Count(), Is.EqualTo(3));
                    AddObjectsToRealm(realm, new[] { 4, 5, 6 });

                    Assert.That(subscription.Results.Count(), Is.EqualTo(6));

                    await WaitForSyncAsync(realm);
                    Assert.That(subscription.Results.Count(), Is.EqualTo(6));
                }

                using (var realm = GetRealm(userB, realmUri))
                {
                    var subscription = await SubscribeToObjectsAsync(realm);

                    AssertRealmPrivileges(realm, RealmPrivileges.Read);
                    AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe);
                    AssertObjectPrivileges(realm, ObjectPrivileges.Read);

                    Assert.That(subscription.Results.Count(), Is.EqualTo(6));
                    AddObjectsToRealm(realm, new[] { 7, 8, 9 });

                    Assert.That(subscription.Results.Count(), Is.EqualTo(9));

                    await WaitForSyncAsync(realm);
                    Assert.That(subscription.Results.Count(), Is.EqualTo(6));
                }
            });
        }
Esempio n. 16
0
 public int PermissionRoleAdd(PermissionRole permissionRole)
 {
     using (OracleConnection conn = DapperHelper.GetConnString())
     {
         conn.Open();
         string sql = string.Format("insert into PermissionRole values(@PermissionRoleID,@RolePID,@FunctionPID,@CreateData,@UpdateDate,getdate())");
         int    i   = conn.Execute(sql, permissionRole);
         return(i);
     }
 }
Esempio n. 17
0
 public int PermissionRoleUpdate(PermissionRole permissionRole)
 {
     using (OracleConnection conn = DapperHelper.GetConnString())
     {
         conn.Open();
         string sql = "Update PermissionRole set  PermissionRoleID=@PermissionRoleID,RolePID=@RolePID,FunctionPID=@FunctionPID,CreateData=@CreateData,UpdateDate=@UpdateDate";
         int    i   = conn.Execute(sql, permissionRole);
         return(i);
     }
 }
Esempio n. 18
0
        public void InsertRole()
        {
            var role = new PermissionRole {
                Name        = "普通用户",
                Description = "测试用只能看到自己的数据"
            };
            var result = this.permissionSvc.AddOrUpdateRole(role);

            Assert.IsTrue(result > 0);
        }
Esempio n. 19
0
        private PermissionRole FillPermissionRecord(PermissionRoleDS.PermissionRoleRow row)
        {
            PermissionRole theNewRecord = new PermissionRole(
                row.permissionid,
                row.IsdescriptionNull() ? "" : row.description,
                row.IsroleNull() ? "" : row.role,
                row.IsroleNull() ? false : true);

            return(theNewRecord);
        }
Esempio n. 20
0
        public ActionResult Create(string RoleId, List <int> Sel)
        {
            ViewBag.Current = "Roles";

            if (Sel == null)
            {
                return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "CreateError" }));
            }


            string RoleName = db.Roles.Find(RoleId).Name;

            foreach (int P_Id in Sel)
            {
                PermissionRole PR = new PermissionRole()
                {
                    RoleId       = RoleId,
                    PermissionId = P_Id,
                    CreatedAt    = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss"),
                    CreatedById  = this.User.Identity.GetUserId(),
                    Is_Active    = true
                };
                string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");
                string PermissionName   = db.Permissions.Find(P_Id).Name;

                db.PermissionRoles.Add(PR);



                db.SaveChanges();
                string       UserId       = User.Identity.GetUserId();
                Notification notification = null;


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

            // return View();
            return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "CreateSuccess" }));
        }
Esempio n. 21
0
        /// <summary>
        /// Operation without transaction
        /// </summary>
        /// <param name="newPermissions"></param>
        /// <returns></returns>
        public IList <ValidationResult> SavePermissionRole(PermissionRole entity)
        {
            var validations = _permissionRoleRepository.Validate(entity);

            if (validations.Count > 0)
            {
                return(validations);
            }

            _permissionRoleRepository.Save(entity);

            return(validations);
        }
Esempio n. 22
0
        //protected readonly IUnitOfWork unitOfWork;
        //protected readonly IPermissionRoleRepository permissionRoleRepository;
        //public PermissionSvc(IUnitOfWork unitofwork, IPermissionRoleRepository permissionRoleRepository)
        //{
        //    this.unitOfWork = unitofwork;
        //    this.permissionRoleRepository = permissionRoleRepository;
        //}

        public int AddOrUpdateRole(PermissionRole role)
        {
            if (role.Id > 0)
            {
                this.permissionRoleRepository.Update(role);
            }
            else
            {
                this.permissionRoleRepository.Add(role);
            }
            this.unitOfWork.Commit();
            return(role.Id);
        }
Esempio n. 23
0
        public PartialViewResult SetNewPermission(int?permissionid, int?roleid)
        {
            PermissionRole p = new PermissionRole();

            p.RoleID       = roleid;
            p.PermissionID = permissionid;
            p.Created      = DateTime.Now;
            db.PermissionRoles.Add(p);

            db.SaveChanges();

            return(PartialView("_updaterole", DataUpdateRole(roleid)));
        }
        public static PermissionRoleDto Map(PermissionRole entity)
        {
            var dto = new PermissionRoleDto();

            dto.Id         = entity.Id;
            dto.Permission = entity.Permission != null?PermissionDtoMapper.Map(entity.Permission) : null;

            dto.CreatedOn      = entity.CreatedOn;
            dto.LastModifiedOn = entity.LastModifiedOn;
            dto.Deleted        = entity.Deleted;
            //todo: don't do LastModifiedBy in here, have a 'MapWithLastModifiedBy' method - otherwise infinately recursive call.
            //todo: don't do CreatedBy in here, have a 'MapWithCreatedBy' method - otherwise infinately recursive call.
            return(dto);
        }
Esempio n. 25
0
        public ActionResult confirm(int id)
        {
            ViewBag.Current = "Roles";
            string         ActiveState    = "";
            PermissionRole PermissionRole = db.PermissionRoles.Find(id);

            if (PermissionRole.Is_Active == true)
            {
                PermissionRole.Is_Active = false;
                ActiveState = "إلغاء التفعيل";
            }
            else
            {
                PermissionRole.Is_Active = true;
                ActiveState = " إعادةالتفعيل";
            }

            PermissionRole.Updatedat       = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");
            PermissionRole.UpdatedById     = this.User.Identity.GetUserId();
            db.Entry(PermissionRole).State = EntityState.Modified;



            string Role_ID          = Session["Role_Id"].ToString();
            string RoleName         = db.Roles.Find(Role_ID).Name;
            string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");
            string PermissionName   = db.Permissions.Find(PermissionRole.PermissionId).Name;

            db.SaveChanges();

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

            foreach (ApplicationUser user in Users)
            {
                notification = new Notification()
                {
                    CreatedAt           = NotificationTime,
                    Active              = false,
                    UserId              = user.Id,
                    Message             = "تمت  عملية  : " + ActiveState + " للصلاحية :" + PermissionName + " للدور :" + RoleName,
                    NotificationOwnerId = UserId
                };
                db.Notifications.Add(notification);
            }
            db.SaveChanges();

            return(RedirectToAction("Index", new { @id = Session["Role_Id"].ToString(), @msg = "ActiveSuccess" }));
        }
        public async Task <IActionResult> PostPermissionRole([FromBody] PermissionRole permissionRole)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var permissionRoleToUpdate = _context.PermissionRole.Where(pR => pR.RoleID == permissionRole.RoleID && pR.PermissionID == permissionRole.PermissionID).First();

            permissionRoleToUpdate.IsEnabled = permissionRole.IsEnabled;

            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPermissionRole", new { id = permissionRole.ID }, permissionRole));
        }
Esempio n. 27
0
 public void Create(PermissionRole PermissionRole)
 {
     try
     {
         using (Context = new ProjectLineContext())
         {
             Context.PermissionsRoles.Add(PermissionRole);
             Context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         Console.Write(ex);
     }
 }
        public void Test_RealmRead()
        {
            SyncTestHelpers.RequiresRos();

            AsyncContext.Run(async() =>
            {
                var userA = await SyncTestHelpers.GetUserAsync();
                var userB = await SyncTestHelpers.GetUserAsync();

                var realmUri = await CreateRealm(r =>
                {
                    CreatePermissions(RealmPermission.Get(r).Permissions);
                    var role = PermissionRole.Get(r, "reader");
                    role.Users.Add(userA);
                });

                using (var realm = GetRealm(userA, realmUri))
                {
                    var query        = realm.All <ObjectWithPermissions>();
                    var subscription = query.Subscribe();
                    await subscription.WaitForSynchronizationAsync().Timeout(2000);

                    AssertRealmPrivileges(realm, RealmPrivileges.Read);
                    AssertClassPrivileges(realm, ClassPrivileges.Read | ClassPrivileges.Subscribe);
                    AssertObjectPrivileges(realm, ObjectPrivileges.Read);

                    Assert.That(subscription.Results.Count(), Is.EqualTo(3));
                    AddObjectsToRealm(realm, new[] { 4, 5, 6 });

                    Assert.That(subscription.Results.Count(), Is.EqualTo(6));

                    await WaitForSyncAsync(realm);
                    Assert.That(subscription.Results.Count(), Is.EqualTo(3));
                }

                using (var realm = GetRealm(userB, realmUri))
                {
                    var query        = realm.All <ObjectWithPermissions>();
                    var subscription = query.Subscribe();
                    await subscription.WaitForSynchronizationAsync().Timeout(2000);

                    AssertRealmPrivileges(realm, 0);
                    AssertClassPrivileges(realm, 0);

                    Assert.That(subscription.Results.Count(), Is.Zero);
                }
            });
        }
Esempio n. 29
0
        public ActionResult Details(int?id)
        {
            ViewBag.Current = "Roles";

            if (id == null)
            {
                return(RedirectToAction("BadRequestError", "ErrorController"));
            }
            PermissionRole permissionRole = db.PermissionRoles.Find(id);

            if (permissionRole == null)
            {
                return(RedirectToAction("HttpNotFoundError", "ErrorController"));
            }
            return(View(permissionRole));
        }
Esempio n. 30
0
 public void UpdatePermissionForRole(PermissionRole thePermission)
 {
     if (thePermission.RoleHasPermission)
     {
         if (!PermissionIsAllowedForRole(thePermission.Role, thePermission.PermissionId))
         {
             PermissionAdapter.InsertOperationForRole(thePermission.PermissionId, thePermission.Role);
         }
     }
     else
     {
         if (PermissionIsAllowedForRole(thePermission.Role, thePermission.PermissionId))
         {
             PermissionAdapter.DeleteOperationForRole(thePermission.PermissionId, thePermission.Role);
         }
     }
 }
Esempio n. 31
0
        public static void AddPermissionsToRole(Person currentPerson, int roleId, List<int> permissionIds)
        {
            if (!currentPerson.HasPermission(Permissions.EditPermissions))
                return;
            using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString))
            {
                foreach (var permissionId in permissionIds)
                {
                    PermissionRole pr = new PermissionRole()
                    {
                        RoleId = roleId,
                        Changed = DateTime.Now,
                        Created = DateTime.Now,
                        PermissionId = permissionId
                    };

                    context.PermissionRoles.AddObject(pr);
                }

                context.SaveChanges();

            }
        }
		public PermissionRole CreateRole(string roleName, List<PermissionDataAssignment> roleDataItems = null)
		{
			var item = new PermissionRole
			{
				Id = Guid.NewGuid().ToString(),
				RoleName = roleName,
				DataAssignmentList = roleDataItems
			};
			_documentSession.Store(item);
			_documentSession.SaveChanges();
			return item;
		}
        public static void CreateNewChurch(Person currentPerson, ChurchSettingsViewModel churchSettings)
        {
            if (!currentPerson.HasPermission(Permissions.SystemAdministrator)) return;
            using (var context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString))
            {
                var newChurch = new Church();
                context.AddToChurches(newChurch);
                newChurch.Created = DateTime.Now;

                PopulateChurchModel(churchSettings, newChurch);
                newChurch.EmailLogin = "******";
                newChurch.EmailPassword = "******";
                newChurch.Country = "South Africa";
                PopulateChurchAddress(churchSettings, context, newChurch);
                context.SaveChanges();

                //Save Roles
                var currentChurchRoles = context.Roles.Where(r => (r.ChurchId == currentPerson.ChurchId && r.Name != "System Administrator")).ToList();
                foreach (var currentRole in currentChurchRoles)
                {
                    var newChurchRole = new Role();
                    context.AddToRoles(newChurchRole);
                    newChurchRole.Created = DateTime.Now;
                    newChurchRole.Changed = DateTime.Now;
                    newChurchRole.Name = currentRole.Name;
                    newChurchRole.DisplayName = currentRole.DisplayName;
                    newChurchRole.ChurchId = newChurch.ChurchId;

                    foreach (var permission in currentRole.PermissionRoles)
                    {
                        var newRolePerm = new PermissionRole();
                        context.AddToPermissionRoles(newRolePerm);
                        newRolePerm.Created = DateTime.Now;
                        newRolePerm.Changed = DateTime.Now;
                        newRolePerm.PermissionId = permission.PermissionId;
                        newChurchRole.PermissionRoles.Add(newRolePerm);
                    }
                }

                context.SaveChanges();

                //Update Role that can be set by any role
                foreach (var currentRole in currentChurchRoles)
                {
                    var newRole = context.Roles.FirstOrDefault(r => (r.ChurchId == newChurch.ChurchId && r.Name == currentRole.Name));
                    foreach (var newRoleToSet in from roleToSet in currentRole.CanSetRoles where roleToSet.Name != "System Administrator" select context.Roles.FirstOrDefault(r => (r.ChurchId == newChurch.ChurchId && r.Name == roleToSet.Name)))
                    {
                        newRole.CanSetRoles.Add(newRoleToSet);
                    }
                }

                context.SaveChanges();

                var personAddress = new Address {Created = DateTime.Now, Changed = DateTime.Now, Line1 = string.Empty, Line2=string.Empty, Line3=string.Empty, Line4 = string.Empty};
                context.AddToAddresses(personAddress);

                var churchAdministrator              = new Person();
                context.AddToPeople(churchAdministrator);
                churchAdministrator.Created          = DateTime.Now;
                churchAdministrator.Changed          = DateTime.Now;
                churchAdministrator.Firstname        = churchSettings.ContactFirstname;
                churchAdministrator.Church           = newChurch;
                churchAdministrator.Email            = churchSettings.OfficeEmail;
                var churchAdministratorFamily        = new Family();
                context.AddToFamilies(churchAdministratorFamily);
                churchAdministratorFamily.FamilyName = churchSettings.ContactSurname;
                churchAdministratorFamily.Created    = DateTime.Now;
                churchAdministratorFamily.Changed    = DateTime.Now;
                churchAdministrator.Family           = churchAdministratorFamily;
                churchAdministrator.Family.Address   = personAddress;

                context.SaveChanges();

                //Set the new persons role to administrator
                var personChurchRecord = new PersonChurch
                    {
                        Person = churchAdministrator,
                        Church = newChurch,
                        Role = context.Roles.First(r => (r.ChurchId == newChurch.ChurchId && r.Name == "Church Administrator"))
                    };

                context.AddToPersonChurches(personChurchRecord);
                context.SaveChanges();

                //Update Church Optional Fields
                var churchOptionalFields = context.ChurchOptionalFields.Where(c=>c.ChurchId == currentPerson.ChurchId);
                foreach (var co in churchOptionalFields)
                {
                    var newCo = new ChurchOptionalField();
                    context.AddToChurchOptionalFields(newCo);
                    newCo.Created = DateTime.Now;
                    newCo.Changed = DateTime.Now;
                    newCo.ChurchId = newChurch.ChurchId;
                    newCo.OptionalFieldId = co.OptionalFieldId;
                    newCo.Visible = co.Visible;
                }

                context.SaveChanges();
            }
        }
Esempio n. 34
0
        public static void CreateNewChurch(Person currentPerson, ChurchSettingsViewModel churchSettings)
        {
            if (currentPerson.HasPermission(common.Permissions.SystemAdministrator))
            {
                using (oikonomosEntities context = new oikonomosEntities(ConfigurationManager.ConnectionStrings["oikonomosEntities"].ConnectionString))
                {
                    var newChurch = new Church();
                    context.AddToChurches(newChurch);
                    newChurch.Created = DateTime.Now;

                    PopulateChurchModel(churchSettings, newChurch);
                    newChurch.EmailLogin = "******";
                    newChurch.EmailPassword = "******";
                    PopulateChurchAddress(churchSettings, context, newChurch);
                    context.SaveChanges();

                    //Save Roles
                    var currentChurchRoles = context.Roles.Where(r => (r.ChurchId == currentPerson.ChurchId && r.Name != "System Administrator")).ToList();
                    foreach (var currentRole in currentChurchRoles)
                    {
                        var newChurchRole = new Role();
                        context.AddToRoles(newChurchRole);
                        newChurchRole.Created = DateTime.Now;
                        newChurchRole.Changed = DateTime.Now;
                        newChurchRole.Name = currentRole.Name;
                        newChurchRole.DisplayName = currentRole.DisplayName;
                        newChurchRole.ChurchId = newChurch.ChurchId;

                        foreach (var permission in currentRole.PermissionRoles)
                        {
                            var newRolePerm = new PermissionRole();
                            context.AddToPermissionRoles(newRolePerm);
                            newRolePerm.Created = DateTime.Now;
                            newRolePerm.Changed = DateTime.Now;
                            newRolePerm.PermissionId = permission.PermissionId;
                            newChurchRole.PermissionRoles.Add(newRolePerm);
                        }
                    }

                    context.SaveChanges();

                    //Update Role that can be set by any role
                    foreach (var currentRole in currentChurchRoles)
                    {
                        var newRole = context.Roles.Where(r => (r.ChurchId == newChurch.ChurchId && r.Name == currentRole.Name)).FirstOrDefault();
                        foreach (var roleToSet in currentRole.CanSetRoles)
                        {
                            if (roleToSet.Name != "System Administrator")
                            {
                                var newRoleToSet = context.Roles.FirstOrDefault(r => (r.ChurchId == newChurch.ChurchId && r.Name == roleToSet.Name));
                                newRole.CanSetRoles.Add(newRoleToSet);
                            }
                        }
                    }

                    context.SaveChanges();

                    var churchAdministrator              = new Person();
                    context.AddToPeople(churchAdministrator);
                    churchAdministrator.Created          = DateTime.Now;
                    churchAdministrator.Changed          = DateTime.Now;
                    churchAdministrator.Firstname        = churchSettings.ContactFirstname;
                    churchAdministrator.Church           = newChurch;
                    var churchAdministratorFamily        = new Family();
                    context.AddToFamilies(churchAdministratorFamily);
                    churchAdministratorFamily.FamilyName = churchSettings.ContactSurname;
                    churchAdministratorFamily.Created    = DateTime.Now;
                    churchAdministratorFamily.Changed    = DateTime.Now;
                    churchAdministrator.Family           = churchAdministratorFamily;

                    context.SaveChanges();

                    //Set the new persons role to administrator
                    churchAdministrator.RoleId = context.Roles.First(r => (r.ChurchId == newChurch.ChurchId && r.Name == "Church Administrator")).RoleId;
                    context.SaveChanges();

                    //Update Church Optional Fields
                    var churchOptionalFields = context.ChurchOptionalFields.Where(c=>c.ChurchId == currentPerson.ChurchId);
                    foreach (var co in churchOptionalFields)
                    {
                        var newCo = new ChurchOptionalField();
                        context.AddToChurchOptionalFields(newCo);
                        newCo.Created = DateTime.Now;
                        newCo.Changed = DateTime.Now;
                        newCo.ChurchId = newChurch.ChurchId;
                        newCo.OptionalFieldId = co.OptionalFieldId;
                        newCo.Visible = co.Visible;
                    }

                    context.SaveChanges();
                }
            }
        }